フォームを送信する前にいくつかのパラメータを追加することは可能ですか?
私の問題は、チケットIDを支払いコントローラーに送信する必要があることです。
非表示の入力フィールドを介して送信することも可能ですが、これを実現する他の安全な方法はありますか?
どんな助けでもありがたいです。
ありがとう。
チケットを購入するプロセス 0)イベントを選択します1)ユーザーは購入したいチケットの種類を選択します。2)ユーザーが自分の個人情報を追加します3)最後にチェックアウト(支払いコントローラー)
フォームを送信する前にいくつかのパラメータを追加することは可能ですか?
私の問題は、チケットIDを支払いコントローラーに送信する必要があることです。
非表示の入力フィールドを介して送信することも可能ですが、これを実現する他の安全な方法はありますか?
どんな助けでもありがたいです。
ありがとう。
チケットを購入するプロセス 0)イベントを選択します1)ユーザーは購入したいチケットの種類を選択します。2)ユーザーが自分の個人情報を追加します3)最後にチェックアウト(支払いコントローラー)
したがって、次のフォーム送信で必要なチケット ID を生成しています。はい、それをフォームの非表示変数に保持することをお勧めします。
ただし、それとは別に、生成されたチケット ID をセッションに保存し、使用後に破棄することができます。
このチケットIDが一度に特定のセッションに対して一意である場合、セッションIDのキーを使用してデータベースに保存し、フォームが送信されたときにIDを取得してクリアできます。
可能であれば、フォームが送信されるときにチケット ID を生成します。このようにして、チケットIDを隠し変数、セッション、またはデータベースに保存することに疑問の余地はありません。
実際には他にも多くの方法があるかもしれませんが、完全で具体的な提案については、シナリオをもう少し共有してください.
アップデート:
あなたの更新に基づいて、テーブルを維持する必要があると思いますrunning_transactions
。
それは持っています
event_id
(選択したイベントを指して)ticket_type_id
(ユーザーが購入したいチケットの種類を指差して)ticket_id
(アルゴリズムによって生成された一意の ID)person_details
(ユーザーから提供された詳細を指します)id
: このテーブルの一意の識別子。今すぐ購入プロセスを開始します
running_transaction
ほとんど空になるエントリを作成します。running_transaction
、この ID によって対応するエントリが見つかります。running_transaction
を としてマークしcompleted
ます。おそらく、これらの情報を追跡するための何かがすでにあるので、その表にも上記の方法を適用できます。おそらく、私が提供したものよりも良い名前が見つかるでしょう:)
私が持っているアプリでこれを行いました。
<td><%= @competencys[index].name %></td>
<%= f.hidden_field :student_id %>
<td>
<%= f.radio_button :score, '4' %>
<%= f.hidden_field :rating_id, :value => @competencys[index].ratings[0].id %>
<%= @competencys[index].ratings[0].description %>
</td>
これに従うのは少し難しいかもしれませんが、この例では、student_id フィールドと rating_id フィールドを持つ結果を作成しています。Student_id の場合、このフィールドは既に :student_id シンボル (コントローラーから) に関連付けられているため、f.hidden_field を使用して「隠れて」割り当てているだけです。
rating_id の場合、コントローラーで割り当てることができず、「その場で」行う必要があったため、コードは...
<%= f.hidden_field :rating_id, :value => @competencys[index].ratings[1].id %>
ここでは、この :value 記号を使用して、ビューで rating_id を直接割り当てていることがわかります。これが役立つかどうかはわかりませんが、共有すると思いました。幸運を!