我正在尝试创建一个单击的按钮,将模型中的布尔值(clue1)更改为true(线索)。我读过我必须使用表单而不是Link_to。我宁愿使用链接,因为我希望它在提交后将其重定向到另一个页面。从在线帖子我想出了这个:
<%= form_for :clue1 do |f| %>
<div><%= f.hidden_field :clue1, :value => true %></div>
<%= f.submit "See Next Clue", class: "btn btn-default"%>
<% end %>
但经过多次尝试后我才会遇到错误。谢谢你的帮助。
答案 0 :(得分:1)
如果您有这样的表单/链接,可以通过添加其他路由并且不传递参数来完成此操作。像这样......
添加路由以更新此布尔值
resources :clue do
patch :update_clue1, on: :member
end
使用方法
添加link_to= link_to "Update Clue 1", update_clue1_clue_path(clue), method: :patch
并在控制器中添加操作
def update_clue1
@clue = Clue.find(params[:id]
@clue.update_attribute(:clue1, true)
redirect_to :other_page
end
答案 1 :(得分:0)
如果必须使用布尔值设置变量,可以使用&#34; remote:true&#34;使用link_to标记并为该提交操作创建一个.js文件,在该js文件中,您可以设置所需的变量值。