我不确定为什么会收到此错误:
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
我可以看到最后一个“称为销毁”的所有 puts 输出
所以这意味着对 u.destroy
的调用肯定是问题所在。
如果我尝试在 rails console
中获取记录,并对用户调用 destroy,它会正常工作。
这会是什么?
最佳答案
u
是 User
的集合,但是 destroy
需要在单个用户或 relation with an argument denoting the ID 上调用用户
。您可以:
u = User.where("guid = ?", guid).first
或
u = User.find_by_guid(guid)
关于ruby-on-rails - 试图破坏模型,说出错误的参数数量(1 为 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9557312/