2012-03-04 86 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 
相关问题