传递params以使用Rails更新列

时间:2015-08-27 18:02:51

标签: ruby-on-rails ruby

这段代码很好地创建了新的模型,但是当它应该更新模型时,它似乎什么也没做。

Connection: keep-alive

1 个答案:

答案 0 :(得分:1)

Model.exists?并没有阻止,但是你只给了一个。这意味着您的代码等同于:

update_all

所以当然更新永远不会发生。你的阻止真的应该是@update.save的身体。此外,@update直接更新数据库,因此无需调用if Model.exists?(:s => params[:s], :img => params[:image]) @update = Model.where(:s => params[:s], :img => params[:image]) @update.update_all({num: params[:num], url: params[url].values[0]}) else @model = Model.new(s: params[:s], img: params[:image], num: params[:num], url: params[url].values[0]) @model.save end (无论如何都会失败,因为save是关系而不是模型实例):

{{1}}

感谢Athar提醒{{1}}。