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

Ruby on rails 按钮单击将布尔值更改为true,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我试图创建一个按钮,单击该按钮可以将模型(线索)中的布尔值(clue1)更改为true。我读到我必须使用表单而不是链接到。我宁愿使用指向的链接,因为我希望它在提交后重定向到另一个页面。从网上的帖子中,我得出以下结论: <%= form_for :clue1 do |f| %> <div><%= f.hidden_field :clue1, :value => true %></div> <%= f.submit "See Next Cl

我试图创建一个按钮,单击该按钮可以将模型(线索)中的布尔值(clue1)更改为true。我读到我必须使用表单而不是链接到。我宁愿使用指向的链接,因为我希望它在提交后重定向到另一个页面。从网上的帖子中,我得出以下结论:

<%= form_for :clue1 do |f| %>
<div><%= f.hidden_field :clue1, :value => true %></div>
<%= f.submit "See Next Clue", class: "btn btn-default"%>
<% end %>

正确%>

但经过多次尝试,我只会出错。感谢您的帮助。

如果您必须使用布尔值设置变量,您可以使用带有link_的“remote:true”来标记并为提交操作创建一个.js文件,并且在该js文件中您可以设置所需的变量值。

如果您有这样的表单/链接,您可以通过添加另一个路由并不传递任何参数来完成此操作。像这样

添加路由以更新此布尔值

resources :clue do
  patch :update_clue1, on: :member
end
使用方法将链接添加到

= 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

当我运行rake db:mirregate时,我在rake路由中得到了这个错误“
block(2层)”:未定义的局部变量或方法“
update_clue1”for#(namererror)”。对不起,在路由中,它们应该是符号。我的答案已更新。我不确定是否感谢您的帮助。我有此错误,它表明控制器有问题
/hunt_controller.rb:6:语法错误,意外的tIVAR,应为“')@clue.update_属性(:clue1,true)^
看起来像是语法错误。你能在某个地方发布更多的控制器代码吗?是的,当我把它全部放到gether并加载页面时,我得到了一个
ActionController::UrlGenerationError