2016-04-03 8 views
-2

ビューページ(.html.erb)でセッション変数の値を定義してコントローラで使用できるかどうかを知りたいですか?オーダーコントローラでRails:レールコントローラでセッション変数を使用することはできますか?

、new.html.erb:

支払コントローラファイル内
session[:amount] = @order.amount 

@amount = session[:amount] 

私は私のコントローラ内の変数を持って、その値例えば

私はビューの1つに入る変数に基づいて変更する必要があります。値はセッションに格納されるので、私は自分のコントローラでセッション値を使用する必要があります。説明と返信をお寄せいただきありがとうございます。

+0

これが可能であれば、どうして試してみませんか? – spickermann

+0

あなたのビューではなくあなたのコントローラに 'session [:amount]'をセットすることをお勧めします。 –

+0

@spickermann私は試してみましたが、エラーが発生しましたが、この問題のためにエラーが発生しているのか、他の問題に関連しているのか分かりません! –

答えて

0

私が試みたように、セッション変数を使用してビューからコントローラにパラメータを渡すことが可能であることがわかりました。私が持っていた問題は、変数の値の型によるものでした。セッション変数を使用し、 "flood"関数を使用してその型を変更しました。問題は解決されました。

私は一般的な形で質問してセッション変数について詳しく知っていましたが、残念ながら私は適切な回答を得ていませんでした。

-1

直面している問題は、複数のリクエストにわたって永続性データを保持することです。

セッションをレールビューで設定することはできません。セッションの全体の原則は、サーバー側で永続的なデータを保持することです。あなたの問題に取り組むために、あなたはクッキーを利用することができます。クッキーは、クライアント側の要求を介して永続データを格納するために使用され、各サーバー要求とともにサーバーに送信されます。あなたのビューにクッキーを設定し、それをコントローラで使用することはあなたの目的に役立ちます。

+0

Railsビューは、サーバ上のrailsコントローラが使用するテンプレートであり、 'session'を利用できます。 – Satya

0

あなたは、ビューがどのように表示が値を取得するん

私は の一つに入るその値が変数に基づいて変更する必要があります

を言うの?

  • あなたがユーザ入力によってそれを得る場合は、次のビューにルビーを使用して

は、ユーザーがHTMLページと相互作用していることから、助けにはなりません。新しい値をrailsセッションに設定するサーバー呼び出しを行うには、フォームPOSTを使用する必要があります。

  • あなたがルビーで何かを計算して、それを取得した場合:

次に、あなたは可能性があり、おそらくコントローラからではなく、ビューからそれを行う必要があります。もちろん、レールセッションに値を保存することもできます。

また、問題がどこにあるか(セッションの使用方法やStripe APIの使用方法など)わからない場合は、両方の問題を分離して解決策を見つけることをお勧めします。 たとえば、あるコントローラメソッドでセッション内にハードコードされた値を設定し、別のコントローラーメソッドでそれを読み取ってみてください。それが動作するときは、Stripeと組み合わせて使用​​してください。

+0

返信いただきありがとうございます。問題は解決され、あなたが言ったように、値をレールセッションに格納することは可能です。 –

関連する問題