我有一个简单的形式使用条纹结帐付款如下:
<%= form_for Order.new do |f| %>
<!-- Price -->
<% ["2465"].each do |amount| %>
<input type="hidden" name="amount" value="<%= amount %>" />
<% end %>
<!-- Description -->
<% ["A product"].each do |description| %>
<input type="hidden" name="description" value="<%= description %>" />
<% end %>
<!-- variable string -->
<%= f.text_field :test %>
<!-- Stripe script -->
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-panel-label="Payer {{amount}}"
data-label="Payer 24,65€"
data-billing-address="true"
data-shipping-address="true"
data-key="<%= Rails.configuration.stripe[:publishable_key] %>">
</script>
<% end %>
字符串
如您所见,我有一个字段,用户可以填充之前,启动条纹弹出付款。
<!-- variable string -->
<%= f.text_field :test %>
型
问题是它总是在数据库中返回nil,不管用户输入什么.
我尝试从我的orders_controller.rb中获取值,如下所示:
def create
@order = Order.new
charge_error = nil
# Amount in cents
if @order.valid?
# some stripe set up goes here...
@order.description = params[:description]
@order.amount = params[:amount]
@order.test = params[:test]
end
end
型
从控制台,字符串被填入参数中,但总是返回空的记录内:
通过订单处理控制器#create as HTML参数:{“utf8”=>“",“订单”=>{“测试”=>“输入的值”}
订单编号:74,测试:无
谢谢
EDIT 1:记录保存后的完整跟踪:
=> #<Order id: 82, name: "jérémy zaccherini", created_at: "2017-04-28 12:08:41", updated_at: "2017-04-28 12:08:41", card_token: "tok_1ADXtnA5xCR7Wb7xlUyLKfIN", email: "[email protected]", address_line1: "Residence feuch, 75004 PARIS", address_zip: "75004", address_country: "France", address_city: "PARIS", description: "MpyProduct", amount: "2465", status: "Non traitée", test: nil>
型
编辑解决方案:
重新阅读ruby doc about form helpers,解决方案是在我的表单中使用这样的表单助手:
<!-- variable string -->
<%= text_area_tag(:test) %>
型
通过这种方式,我可以检索用户从我的控制器输入的值:
@order.test = params[:test]
型
还是谢谢你。
1条答案
按热度按时间wwtsj6pe1#
你不保存订单
字符串
设置值后,使用
@order.save
保存订单