使用 Rails 5 传递隐藏字段标签参数

The*_*pap 1 ruby ruby-on-rails ruby-on-rails-4

来自views/plans/new.html.erb我得到的 plan_id 和价格参数如下:

\n\n
<%= link_to "Sign up", new_store_registration_path(:plan_id => plan.id, :price => plan.price) %>\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后应用程序重定向到注册页面,并使用以下内容保留之前的参数并添加电子邮件:

\n\n

注册控制器.rb

\n\n
def after_sign_up_path_for(resource)\n  new_transaction_path(session[:registration_params].merge(ema\xe2\x80\x8c\xe2\x80\x8bil: resource.email))\nend\n\ndef after_inactive_sign_up_path_for(resource)\n  new_transaction_path(session[:registration_params].merge(ema\xe2\x80\x8c\xe2\x80\x8bil: resource.email))\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

最后注册后,应用程序重定向到views/transcation/new.html.erb,其中包含plan_id,priceemail参数。

\n\n
Parameters: {"ema\xe2\x80\x8c\xe2\x80\x8bil"=>"example@gmail.com", "plan_id"=>"bs96", "price"=>"150.0"}\n
Run Code Online (Sandbox Code Playgroud)\n\n

此时我正在尝试将电子邮件参数传递给交易<%= hidden_field_tag(:email, params["email"]) %>

\n\n

但没有收到电子邮件,如下所示:

\n\n
Parameters: {"utf8"=>"\xe2\x9c\x93", "authenticity_token"=>"KeS2xK7NIJZwFQvW2kJKupcpURnQweq+yoRgk9AJ1aaOgFIIym4RKadI4jc6vYynMo4vKR4eLmdIynfBG+EusQ==", "email"=>"", "plan_id"=>"bs96", "amount"=>"150.0", "payment_method_nonce"=>"0c22f2fa-e212-0ad3-753b-0d183d02522b"}\n
Run Code Online (Sandbox Code Playgroud)\n\n

关于我做错了什么有什么想法吗???

\n\n

更新1

\n\n

在views/transcation/new.html.erb里面有ui和脚本中的braintree drop以及三个隐藏字段:

\n\n
<div class="form-container radius-box glassy-bg small-10 small-centered medium-8 large-6 columns">\n  <%= form_tag transactions_path do%>\n      <div id="dropin"></div>\n      <%= hidden_field_tag(:email, params["email"]) %>\n      <%= hidden_field_tag(:plan_id, params["plan_id"]) %>\n      <%= hidden_field_tag(:amount, params["price"]) %>\n      <%=submit_tag "Pay #{params["price"]}$", class: "button mt1" %>\n  <%end%>\n</div>\n\n<script>\n    braintree.setup("<%=@client_token%>", \'dropin\', {\n        container: \'dropin\'\n    });\n</script>\n
Run Code Online (Sandbox Code Playgroud)\n

小智 5

请设置隐藏字段的值,例如:

<%= f.hidden_field :email, :value => "test@test.com" %>
Run Code Online (Sandbox Code Playgroud)

或者

<%= f.hidden_field :email, :value => @object.email %>
Run Code Online (Sandbox Code Playgroud)