2012-03-04 92 views
2

我不知道爲什麼我收到此錯誤:試圖破壞模型,說錯誤的參數數目(0 1)

wrong number of arguments (0 for 1) 

app/models/user.rb:38:in `sign_out_by_guid' 
app/helpers/user_helper.rb:11:in `sign_out' 
app/controllers/users_controller.rb:18:in `destroy' 

我的代碼:

def self.sign_out_by_guid(guid) 
    puts 'currently in sign_out_by_guid' + guid 
    u = User.where("guid = ?", guid) 
    puts u.inspect 
    puts 'before destroy' 
    u.destroy 
    puts 'called destroy' 
    end 

我可以看到所有的投入產出期望爲最後一個「所謂的破壞」

所以這意味着肯定的u.destroy是致電問題。

如果我嘗試在rails console中獲得記錄,並調用銷燬它的用戶,它工作正常。

這可能是什麼?

回答

13

uUser秒的集合,但需要destroy上的單個用戶被調用,或在Userrelation with an argument denoting the ID。你可以這樣做:

u = User.where("guid = ?", guid).first 

u = User.find_by_guid(guid) 
+2

嗯,這個回答你的問題?不要忘記[upvote /接受你的問題的答案](http://meta.stackexchange.com/a/5235/158402)':)' – 2012-03-05 17:18:32

0

檢查user.rb. 確保您params爲

dependent: :destroy 

dependent: destroy 
相關問題