按钮单击将布尔值更改为true

时间:2015-04-14 04:57:57

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

我正在尝试创建一个单击的按钮,将模型中的布尔值(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 %>

但经过多次尝试后我才会遇到错误。谢谢你的帮助。

2 个答案:

答案 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文件中,您可以设置所需的变量值。