Ruby on rails 按钮单击将布尔值更改为true
我试图创建一个按钮,单击该按钮可以将模型(线索)中的布尔值(clue1)更改为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
<%= 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
。