- 締切済み
ruby on railsでの画面間 パラメータ受け渡し方法
ruby on railsでの画面間のパラメータ受け渡し方法についての 質問です。 入力画面1→入力画面2→確認画面→(登録) のような画面遷移を行う場合、入力画面1、2の内容を 登録処理で使用するにはどのようにしたらよいでしょうか? 1.Sessionに格納する。 2.Hiddenフィールドを使用して、画面間で、受け渡しをする。 3.その他、良い方法があれば教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- lv4u
- ベストアンサー率27% (1862/6715)
>>のような画面遷移を行う場合、入力画面1、2の内容を >>登録処理で使用するにはどのようにしたらよいでしょうか? >>1.Sessionに格納する。 >>2.Hiddenフィールドを使用して、画面間で、受け渡しをする。 一般論としては、Hiddenフィールドを使うと、ブラウザ側でデータが見えますし、そのデータの書き換えも自由にできます。例えば、液晶TVの単価が10万円というデータをいれていたら、それを1万円に書き換えることも可能です。なので、重要なデータはHiddenを使うのはまずいでしょう。 でも、Sessionですと、サーバ側で保持するので、そういう心配はありません。 なので、rails 1.2では、Sessionで良いと思います。 ただし、ruby on rails 2.0からは、すべてのセッションデータがクッキーに収容されるように仕様が変更されました。なので、基本的には4KB弱しか入らないと考えないといけません。クッキーは、Hiddenフィールドと同様な危険性があるので、まずいですね。でも、セッションの保存方法を変更することも可能なようです。 >>3.その他、良い方法があれば教えてください。 railsには、DRbStore,MemCacheStore,SqlSessionStoreなど、いくつか標準・非標準のセッション情報保存方法があるようです。 なお、「Railsレシピブック183技」からの情報で、実際に試したわけではありません。よろしく。
お礼
ご回答ありがとうございます。 環境は、ruby on rails 2.0を使用していますので、session、hiddenともに危険ということですね・・・ 「Railsレシピブック183技」を拝見しましたが、 Sessionには、ユーザIDと、flashデータのみを使用することを推奨するとありましたので、 Hiddenを使用して、重要データは、格納しないようにして対応したいと思います。 例えば、液晶TVというデータのみ格納し、単価は、遷移先ページでデータベースから取り直す形にしようと思います。