我想创建一个更改Object的布尔值的按钮。
有这一行:
= button_to 'Subscribe Back', candidate_subscriber_path(subscriber), method: :patch
提出此请求:
{"_method"=>"patch", "action"=>"update", "controller"=>"candidate/subscribers", "id"=>"2"}
我需要它来发送这些属性:
subscribed: true
不知道把它们放在哪里。你有任何线索吗?
尝试:
= button_to 'Subscribe Back', candidate_subscriber_path(subscriber, subscribed: true), method: :patch
= button_to 'Subscribe Back', { controller: 'subscribers', action: 'update', id: subscriber.id, subscribed: false }, method: :patch
结合其他选择。
对我有用的唯一选择是:
= simple_form_for :subscriber, url: candidate_subscriber_path(subscriber),
html: { method: :patch } do |f|
= f.input :subscribed, as: :hidden, input_html: { value: '1' }
= f.button :submit, 'Subscribe Back'
答案 0 :(得分:1)
我接近它的方式是专门为此创建一个动作。
添加到您的候选路线 -
patch "/resubscribe/:id", to: "candidate/subscribers#resub"
然后在控制器中
def resub
user = YourModel.find(params[:id])
user.update_attributes( subscribed: true )
end
然后只需将该路径发送到您的按钮