【发布时间】:2017-08-08 12:46:27
【问题描述】:
从views/plans/new.html.erb 我得到 plan_id 和 price 参数,内容如下:
<%= link_to "Sign up", new_store_registration_path(:plan_id => plan.id, :price => plan.price) %>
然后应用程序重定向到注册页面,并使用以下内容保留以前的参数并添加电子邮件:
registrations_controller.rb
def after_sign_up_path_for(resource)
new_transaction_path(session[:registration_params].merge(email: resource.email))
end
def after_inactive_sign_up_path_for(resource)
new_transaction_path(session[:registration_params].merge(email: resource.email))
end
最后在注册后,应用重定向到views/transcation/new.html.erb,它有plan_id、price和email参数。
Parameters: {"email"=>"example@gmail.com", "plan_id"=>"bs96", "price"=>"150.0"}
此时我正在尝试使用<%= hidden_field_tag(:email, params["email"]) %> 将电子邮件参数传递给事务
但没有收到电子邮件,如下所示:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"KeS2xK7NIJZwFQvW2kJKupcpURnQweq+yoRgk9AJ1aaOgFIIym4RKadI4jc6vYynMo4vKR4eLmdIynfBG+EusQ==", "email"=>"", "plan_id"=>"bs96", "amount"=>"150.0", "payment_method_nonce"=>"0c22f2fa-e212-0ad3-753b-0d183d02522b"}
关于我做错了什么有什么想法???
更新1
在views/transcation/new.html.erb里面有ui和脚本中的braintree drop以及三个隐藏字段:
<div class="form-container radius-box glassy-bg small-10 small-centered medium-8 large-6 columns">
<%= form_tag transactions_path do%>
<div id="dropin"></div>
<%= hidden_field_tag(:email, params["email"]) %>
<%= hidden_field_tag(:plan_id, params["plan_id"]) %>
<%= hidden_field_tag(:amount, params["price"]) %>
<%=submit_tag "Pay #{params["price"]}$", class: "button mt1" %>
<%end%>
</div>
<script>
braintree.setup("<%=@client_token%>", 'dropin', {
container: 'dropin'
});
</script>
【问题讨论】:
-
您在该表单中是否有另一个名为“email”的字段?如果
params['email']做到了那么远,并且您可以在检查应提交的页面时看到隐藏字段中的值......但是,如果 rails 在解析时多次遇到相同的名称,它使用最后一个它遇到的一个(数组参数的例外) -
可以分享views/transcation/new.html.erb的内容吗?
-
@Satishakumar Awati 请查看更新 1 了解更多详情!
-
您不应依赖隐藏字段标签的值(最终用户可以轻松更改),而应使用可以从数据库中获取的值。正如您所说,最终用户被要求注册,然后被重定向到您要使用这些 hidden_field_tag 的地方。也许您可以使用记录,例如
Plan,来确定价格和电子邮件值是多少?因为使用此代码,任何最终用户都可以编辑 HTML 并更改交易的价格和/或电子邮件 -
感谢@Simple Lime 的回复,不,我没有该表单中的另一个电子邮件字段!我已经上传了views/transcation/new.html.erb...请查看更新1了解更多详情!
标签: ruby-on-rails ruby ruby-on-rails-4