rails 4 update_attribute with unobtrusive javascript

时间:2013-12-07 20:20:22

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

我有以下链接,它是在循环中生成的

<% if category.status %>
    <%= link_to 'Disable', edit_category_path(category), method: :get, remote: true, confirm: 'Are you sure you want to disable' %>
<% else %>
    <%= link_to 'Enable', edit_category_path(category), method: :get, remote: true, confirm: 'Are you sure you want to enable' %>
<% end %>

在我的编辑操作中,我有

unless params[:id].blank?
      @category = @category.update_attribute(:status, false) # Here I mentioned false as static.
end

如果我单击启用它应该启用(在数据库中更新为true),如果我单击禁用它应该禁用(在数据库中更新为false)

我该怎么办?如何传递状态(更新为true或false)

2 个答案:

答案 0 :(得分:0)

像这样使用

<%= link_to 'Disable', edit_category_path(category, {status: 0}), method: :get, remote: true, confirm: 'Are you sure you want to disable' %>

你可以打电话给

控制器中的

params[:status]

答案 1 :(得分:0)

如果'GET edit_category_path'是通常'生成一个POST到#update的表单',则GET不应该更新服务器状态。

也许POST(可能直接到#update),改变状态,然后获取编辑_...路径 或POST到更新状态并重定向到#edit的新操作?