如何将params放入此行?

时间:2014-02-07 19:05:14

标签: ruby-on-rails

我想创建一个更改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'

1 个答案:

答案 0 :(得分:1)

我接近它的方式是专门为此创建一个动作。

添加到您的候选路线 -

patch "/resubscribe/:id", to: "candidate/subscribers#resub"

然后在控制器中

def resub
  user = YourModel.find(params[:id])
  user.update_attributes( subscribed: true )
end

然后只需将该路径发送到您的按钮

相关问题