Ruby on rails 在Rails 3中,如何使用按钮_更改布尔值?

Ruby on rails 在Rails 3中,如何使用按钮_更改布尔值?,ruby-on-rails,Ruby On Rails,我正在尝试编写一个button_to语句来更新activerecord数据库中的布尔值。以下是我尝试过的: <%= button_to "To Amazon", :controller => 'payments', :true => @payment.to_amazon, :method => :put %> 'payments',:true=>@payment.to_amazon,:method=>:put%> 从更大的角度来看,我试图做的是有一个按钮来更新支

我正在尝试编写一个button_to语句来更新activerecord数据库中的布尔值。以下是我尝试过的:

<%= button_to "To Amazon", :controller => 'payments', :true => @payment.to_amazon, :method => :put %>
'payments',:true=>@payment.to_amazon,:method=>:put%>
从更大的角度来看,我试图做的是有一个按钮来更新支付对象,并触发对gem汇款专用方法的调用,以便与amazon支付进行通信。因此:

1) 如何使用按钮_更新布尔值


2) 更改布尔值是访问控制器中私有方法的好方法吗?

您可以使用AJAX回调控制器以切换该布尔值。在这种情况下,我可能只使用一个链接或复选框,但最终并不是什么大问题。如果你想要一些代码作为一个如何做到这一点的例子,让我知道

我回答了一个关于指定操作的问题,我使用了一个链接,如下所示:

link_to "Profile", :controller => "profiles", :action => "show", :method => :get, :id => @profile
@payment.call_amazon_payment_method
因此,您可以指定操作,但这仅适用于链接,而不适用于按钮。但是你可以采取一些特殊的行动来进行更新

至于你的第二个问题,如果我理解正确,你想在调用私有方法后在
@payment
对象上设置一个布尔值吗?我假设您也将布尔值存储在数据库中。因此,控制器操作可以执行如下操作:

link_to "Profile", :controller => "profiles", :action => "show", :method => :get, :id => @profile
@payment.call_amazon_payment_method
然后在payment.rb中(假设您的布尔列由于缺少更好的假名称而被称为“boolean_col”):

我希望我已经正确理解了您的问题,并帮助您找到了一个优雅的解决方案