Rails : ユーザー入力値を button_to に追加する方法
概要
現在 Stripe Checkout を使用しているので、[今すぐ支払う] ボタンに数量を追加したいと考えています。 私は今これをやっています
<%= button_to "Pay Now", checkout_create_path, params: {
:article_id => @article.id}, remote: true %>
ユーザーが入力したフィールドをボタンの params に追加し、それをボタンの params: フィールドに追加するにはどうすればよいですか?
このようにそれは機能しません:
<%= number_field :quantity, :class => "form-control" %>
解決策
リンク/ボタンにパラメータを追加する JS を書くこともできると思いますが、それはそれを行う方法ではありません。フォームを使用する方が良いでしょう:
<%= form_tag checkout_create_path, remote: true do %>
<%= hidden_field :order, :article_id, value: @article.id %>
<%= number_field :order, :quantity, :class => "form-control" %>
<%= submit_tag "Pay Now" %>
<% end %>
これにより、コントローラーは次のパラメーターにアクセスできるようになります。
{"order"=>{"article_id"=>"1", "quantity"=>"3"} ...}
@order 変数を伴う Order の概念を持ち、form_for @order を使用することもできます。