2016-07-27 5 views
0

私は私のレールアプリがコンテンツにアクセスするための購読を売っている。一時的にチェックアウトフォームにtax_percentを渡すための隠しフィールドを挿入していますが、Stripeダッシュボードにnullとして表示され続けます。税金はニュージャージー州だけであり、買い手がニュージャージー州にもいる場合は7%です。私は、javascript呼び出し(Calculating Sales Tax for a US State in Javascript)を介して売上税を計算しています。この値はサブスクリプション#アクションに値をプッシュします。それ以外は働いていません。ここで私のRailsアプリケーションのストライプとtax_percent

が行は、フォームで次のようになります。

<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"} 

ですから、税率は、サブスクリプションの対象外のように見える、まだplan_idはありませんが、彼らはチェックアウトフォームで右隣同士にしていることがわかり。

このtax_percentを正しくストライプAPIにヒットさせるにはどうすればよいですか?

答えて

1

マニュアルが<input>ではないのに、あなたのf.hidden_fieldがサブスクリプションオブジェクト内にあるのはなぜですか?これは、手動入力がhidden_fieldが自動的に適用するフォームフィールドの命名規則を使用していないためです。 docs for #hidden_fieldショーとして

は、あなたの隠されたフィールドplan_idは実際subscription[plan_id]、ないplan_idname属性を持っています。別の隠しフィールドでは、その値がparams["subscription"]のハッシュ内に自動的に入れられるように、同じsubscription[…]規約を使用する必要があります。

あなたは自動的にあなたのtax_percent隠しフィールドは、スタンドアロンのフォームヘルパーhidden_fieldを使用して、この命名規則に準拠することができます:

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

は私がのdocument.getElementById(「税率」)である私のjavascriptの電卓の出力を、使用することができます。値= tax_percent;その税率の値をrubyのhidden_​​fieldに注入するには:<%= hidden_​​field:subscription、:tax_percent%> ?? – JohnOHFS

+0

この変更を行うとエラーが発生します:Subcriptionのための未定義のメソッド 'tax_percent ' – JohnOHFS

+0

@JohnOHFSああ、私は、その隠されたフィールドのデフォルトの' value'が '@ subscription.tax_percent'であることに気付きませんでした。あなたの 'サブスクリプション'モデルに 'tax_percent'メソッドを定義したくない場合は、' <%= hidden_​​field:subscription、:tax_percent、value: '0.07と書くことで、フィールドに '0.07' '%> ' –

関連する問題