在rails上更新_all ruby

时间:2014-11-13 23:24:12

标签: ruby-on-rails ruby ruby-on-rails-4

我试图更新条件为真的所有帖子。如果条件为真,则字段category_id应设置为params [:category_id]

每当我尝试这样做时,我的代码都会更新条件为真的所有帖子并将其设置为" ---!ruby / hash:ActionController :: Parameters categori_id:' 169&#39 ;"

而不仅仅是169。

我的控制器操作看起来像这样

def update_all_notes
@deletefolder = Categori.find(params[:id])
System.where(:categori_id => params[:id]).update_all(:categori_id => params[:categori_id])
redirect_to :back
end

我的表格如下:

<%= form_tag update_all_notes_path(category.id) do %>
<%= collection_select :kategori_id, :id, @current_company.category.where.not(:name => category.name), :id, :name %>
<button>move</button>

这是我发送给动作的参数 &#34; categori_id&#34; = GT; {&#34; categori_id&#34; = GT;&#34; 169&#34;},  &#34; ID&#34; = GT;&#34; 168&#34;}

提前致谢

2 个答案:

答案 0 :(得分:1)

从你的哈希你应该将params [:categori_id]替换为params [:categori_id] [:categori_id]

哈希为{ "categori_id" => {"categori_id" => 169}, "id" => X }

答案 1 :(得分:0)

update_all使用示例:

ids = [1,2,3]
records = Mammal::Human.where(id: ids)
records.update_all(status: :enlightenment, enlightenment_at: Time.zone.now, enlightenment_by: "myself")

我宁愿在status: value语法上使用:status => value