• 締切済み

ruby on railsでの画面間 パラメータ受け渡し方法

ruby on railsでの画面間のパラメータ受け渡し方法についての 質問です。 入力画面1→入力画面2→確認画面→(登録) のような画面遷移を行う場合、入力画面1、2の内容を 登録処理で使用するにはどのようにしたらよいでしょうか? 1.Sessionに格納する。 2.Hiddenフィールドを使用して、画面間で、受け渡しをする。 3.その他、良い方法があれば教えてください。

みんなの回答

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.1

>>のような画面遷移を行う場合、入力画面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技」からの情報で、実際に試したわけではありません。よろしく。

hahihuke
質問者

お礼

ご回答ありがとうございます。 環境は、ruby on rails 2.0を使用していますので、session、hiddenともに危険ということですね・・・ 「Railsレシピブック183技」を拝見しましたが、 Sessionには、ユーザIDと、flashデータのみを使用することを推奨するとありましたので、 Hiddenを使用して、重要データは、格納しないようにして対応したいと思います。 例えば、液晶TVというデータのみ格納し、単価は、遷移先ページでデータベースから取り直す形にしようと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ruby on Railsについて

    今度新しい仕事につきます。 そこで使用されているのはruby on Railsだそうです。 ruby on Railsやrubyのことは全くわかりません。 プログラムの経験はphpをかじった程度です。 これから猛勉強をして習得しようと考えています。 そこで質問が3つほどあります。 1.ruby on Rails を勉強するにあたり、rubyの勉強もしないといけないのか。 また、rubyの勉強をしなければいけない場合、rubyとRailsどちらを先に勉強するべきか。 2.なにかよい参考書はあるか。 3.よい勉強方法はあるか お忙しいとは思いますが、ご回答よろしくおねがいします。

    • ベストアンサー
    • Ruby
  • Ruby on Railsの学び方

    プログラミングを全く学習したことがない人がRuby on Railsという言語をマスターすることはできますか?また、どのような方法で学べばいいのでしょうか。

  • ASPで画面間のパラメタ受け渡し

    こんばんは。ASP初心者です。 ASPでWEBページの作成を行っています。画面遷移をResponse.Redirect()で行っているのですが、遷移前のページと遷移後のページでパラメタを受け渡したい場合はSession("hoge") = "hogehoge"のようにセッションに入れる以外、何か方法はないでしょうか。リクエスト間でパラメタ渡せればがいいので、セッションを通じて保持しておく必要がないのです。クエリを使用するとアドレス欄に変数の値が見えてしまうのでできれば使いたくありません。

  • Ruby on Rails について

    Ruby on Railsでアプリケーションを作ります。 バージョンは:InstantRails-2.0-win 1、データベース表の作成: データベース名:myapp   テーブル名:peoples データベースを作成したら、MySQLを再起動します。 2、新規アプリケーションの作成: アプリケーション名:myapp Instant RailsウィンドウのIボタン⇒Rails Applications⇒Manage Rails Applicationsをクリックします。 Rails ApplicationsダイアログボックスのCreate New Rails App・・をクリックします。 コマンドプロンプト画面が表示されます。 rails myapp を入力します。 コマンドプロンプトのプロンプトが入力状態になって、コマンドプロンプトを閉じます。 Rails ApplicationsダイアログボックスのRefresh Listボタンをクリックしたら、myappアプリケーション名が追加されます。 3、アプリケーション・モデルの作成: InstantRails-2.0-winフォルダ ⇒ rails_apps ⇒ myapp ⇒ config ⇒ datebase.yml ファイルを開きます。 ↓に書き換えます。 development: adapter: mysql database: myapp timeout: 5000 username: root host: localhost   Instant RailsウィンドウのIボタン ⇒ Rails Applications ⇒ Open Ruby Console Windowをクリックします。 コマンドプロンプトが開きます。 cd myapp ruby script/generate model people を入力します。 4、コントローラの作成: コマンドプロンプトを開きます。 cd myapp ruby script/generate controller people を入力します。 コマンドプロンプトを閉じます。 InstantRails-2.0-winフォルダ ⇒ rails_apps ⇒ myapp ⇒ app ⇒ controllers ⇒ people_controller.rb ファイルを開きます。 class PeopleController<Application Controller scaffold :people ←←追加した行です。 end 5、新しいアプリケーションを起動 Rails ApplicationsダイアログボックスのRails Applications 欄の myappの所をチェックし、Start with Mongrelボタンをクリックします。 コマンドプロンプト画面が起動し、ポート番号が表示されます。 Webブラウザを起動し、アドレス欄に 一つは: 「http://localhost:people/list」を入力し、Enterキーを押します。 ↓Errorメッセージが表示されました。 NoMethodError in PeopleController#list undefined method `scaffold' for PeopleController:Class RAILS_ROOT: C:/taiyo/INSTAN~1.0-W/rails_apps/myapp   一つは: http://localhost:3000/people Enterキーを押します。 ↓Errorメッセージが表示されました。 NoMethodError in PeopleController#index undefined method `scaffold' for PeopleController:Class RAILS_ROOT: C:/taiyo/INSTAN~1.0-W/rails_apps/myapp どこの手順が違ってるのが解らなくて、 Errorの解決方法ですごく困ってます。 どうかご指導をお願いいたします。 もう一つはErrorメッセージの3行目は C:/taiyo/INSTAN~1.0-W/rails_apps/myappですけど、 InstantRails-2.0-winフォルダのはずですけど、 INSTAN~1.0-Wフォルダになった原因がよくわからないです。 すごく困ってます。 ご指導お願いいたします。

  • ruby on railsのエラーについて

    今、「ruby on rails」の勉強をしています。で、エラーについて質問なんですが、「ruby script/generate scaffold Article Admin」とコマンドプロンプト上で入力したのですが参考サイトのようにできません。 私の場合は、「対象のコンピュータによって拒否されたため、接続できませんでした。 - connect(2)」と最後にでて失敗します。 どうしたらうまく実行することができるのでしょうか?? 参考サイト(サイト上部): http://www008.upp.so-net.ne.jp/letitbe/rails003.htm

  • Ruby on Railsインストール(アップデート)

    Ruby on Railsインストール(アップデート) RailsをCentOS4.4?にインターネット経由以外でのインストールする方法を知りたいです。 下記に条件を記載させて頂きますので、本当に申し訳ありませんが、 ご教授していただけますでしょうか? 無知で申し訳ありませんがよろしくお願いします。 ■現状  サーバOS CentOS4.4  Ruby 1.6.x  gem 0.9x??  rails 1.x  mysql4.1  sqlite3 ■条件  ・会社のサーバなので、インターネットが使用できない。  ※CDやUSBも無理です。   やり方としては、ソースを会社のメールアドレスに送り   自分の端末からFTPでサーバにアップロードします。   また、上長には許可は頂いています。  ・現状古いバージョンのRuby・RubyGems・Ruby on Railsは   インストールされていますが、アップデートよりは、   上書きインストールの方が望ましい。   ※理解し易いため。    初心者のためアップデートは難関かとm(--)m ■今回インストール(アップデート)したい物  Ruby on Rails 2.x ----以下は、ダウンロード済み----  Ruby 1.8.7  ※こちらは、色々なサイトに記載されています参考にしています。  RubyGems  ※これは、RubyForgeからダウンロード済み ■気になる点  ほかにインストールしなければならないものってありますでしょうか? 教えて君で申し訳ありませんが、よろしくお願いします。

    • ベストアンサー
    • Ruby
  • Ruby on Railsで入力フォームを作成しています。

    Ruby on Railsで入力フォームを作成しています。 そこで、入力されたid(table.id)と商品名カラム(table.product_id) を結合して商品ID(table.product_number)を 登録時に商品IDカラムに登録できないかと思っています。 商品名カラムは商品テーブルから読み込んでいます。 恐らく、callbackのしくみを利用すればできるのではないかと 思っているのですが、やり方がわかりません。 以上、よろしくお願いします。 環境は以下のとおりです。 ruby1.8.6 rails 2.3.5 db:mysql gems:1.3.5

  • ruby on railsで開発するときのエディタ

    初めまし.て。 今度新しく入社する会社で、ruby on railsを使用した開発を致します。 そこで、現場ではなんというエディタを使うのが一般的なのでしょうか。 私は今まで、サクラエディタと秀丸くらいしか使ったことがありません。 入社前までにエディタの使い方くらいは覚えておきたいので、 railsを会社で使用している方、いらっしゃいましたら、ご回答お願いいたします。

  • Ruby on Rails 「attr_accessor」 の使い方に

    Ruby on Rails 「attr_accessor」 の使い方について こんにちは。 現在、Ruby on Railsで登録画面を作成しているのですが、attr_accessorで定義した項目に対して、validationのチェックを行うと、問題が起きてしまいました。 attr_accessorで定義した項目は、DB登録の対象ではないのですが、lengthのチェック等を行う必要があり、validates_length_of等を使って入力チェックを行っています。 問題になったのは、入力があったときだけチェックをかけたいのに、入力がなくてもチェックがかかってしまうという状態になってしまうことです。 「:if => 項目?」を書いてみると、「undefined method」のエラーがでてしまいます。 どなたか対応策の分かる方がおられましたらご教授いただけないでしょうか? 下記に実際の問題箇所のモデルクラスのソースを書いておきます。  class User < ActiveRecord::Base    attr_accessor :NEW_USER_PW ← 追加したアクセサ    # 追加したアクセサに対するチェック    validates_length_of :NEW_USER_PW, :minimum=>4, :message=>"は%d桁以上を設定してくださ                 い。", :on => :update, :if => :NEW_USER_PW?  end 上記のチェック内の「:if => :NEW_USER_PW?」で落ちてしまいます。 入力がないのにチェックに引っかかるとまずいので、入力がないときだけ上記チェックを行えれば良いのですが・・・。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • Ruby
  • Ruby on Rails でのログイン機能について

    Ruby on Rails でのログイン機能について あるPCアプリにログイン・ログアウトの機能をつけたいのですが、良い方法がなくて困っています。 現状は、プラグインのrestful_authenticationを使用しています。 しかし、ログアウトをせずにブラウザを閉じたあにページにアクセスすると自動でログインしていまいます。 何か良い方法はないでしょうか? 

このQ&Aのポイント
  • クリスマスのケーキ、バレンタインのチョコレート、ハロウィンのカボチャ、イースターのタマゴなど、キリスト教関連の食べ物は日本でも定番となっています。
  • しかし、ハロウィンのカボチャやイースターのタマゴは日本ではあまり一般的ではありません。日本の文化には馴染みにくい食べ物です。
  • クリスマスやバレンタインデーは、キリスト教の祭りとしても日本で広く祝われているため、ケーキやチョコレートなどが特に人気です。
回答を見る