Ruby on rails 试图破坏模型,但参数数量错误(0表示1)
我不确定为什么会出现此错误:Ruby on rails 试图破坏模型,但参数数量错误(0表示1),ruby-on-rails,Ruby On Rails,我不确定为什么会出现此错误: 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
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
我可以看到除最后一个“destroy”之外的所有put输出
因此,这意味着对u.destroy
的调用肯定是问题所在
如果我尝试在rails控制台中获取一条记录,并在用户身上调用destroy,效果会很好
这可能是什么?u
是用户
的集合,但需要在单个用户上调用,或在用户
的基础上调用。您可以执行以下任一操作:
u = User.where("guid = ?", guid).first
或
检查user.rb。
确保你的情人是
dependent: :destroy
不是
这回答了你的问题吗?别忘了:)
dependent: :destroy
dependent: destroy