我的Rails应用程序中的条带和Tax_Percent

所以我的Rails应用程序出售访问内容的订阅。我暂时在签出表单中插入了一个隐藏字段,以将TAX_PERCENT传递给Strike的API,但它在Stride仪表板中一直显示为空。这笔税只对新泽西州征收,如果买家也在新泽西州,税率是7%。我通过一个javascript调用(Calculating Sales Tax for a US State in Javascript)计算销售税,然后将值推送到Subscription#create操作。只是它不起作用。

表单中的行如下所示:

<input type="hidden" id="tax_percent" name="tax_percent">
<%= f.hidden_field :plan_id %>

是的,我需要构建一个Ruby方法来在服务器端计算这一点,但就目前而言,这是可以的。

以下是日志中显示的内容:

Processing by Koudoku::SubscriptionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"TokenValueHere", "tax_percent"=>"7", "subscription"=>{"plan_id"=>"5", "credit_card_token"=>"OtherTokenValue", "last_four"=>"undefined", "card_type"=>"undefined"}, "owner_id"=>"72"}

因此您可以看到Tax_Percent似乎在订阅对象之外,而plan_id并非如此,但它们在结账表单中紧邻在一起。

如何让此Tax_Percent正确命中条纹API??


解决方案

为什么您的f.hidden_field在Subscription对象中,而您的手册<input>不在?这是因为您的手动输入没有使用hidden_field自动应用的表单域命名约定。

如docs for #hidden_field所示,您的隐藏字段plan_id实际上有一个name属性subscription[plan_id],而不是plan_id。另一个隐藏字段必须使用相同的subscription[…]约定,才能将其值自动放入params["subscription"]处的哈希中。

您可以使用独立窗体帮助器hidden_field自动使tax_percent隐藏字段遵守此命名约定:

<%= hidden_field :subscription, :tax_percent %>
<%= f.hidden_field :plan_id %>

相关文章