rails:1461
From: 片平 裕市 <yuichi_katahira@m...>
Date: Fri, 4 Aug 2006 11:26:15 +0900
Subject: [rails:1461] Re: habtm で param を受け取る方法
片平(Yu_kata)です。 > 最初はModelクラスにバリデートをつければ事は済むと思って > ましたが、 > 「ライドオンRails」を読み、「validateはsave! > を実行してはじめて有効」 > と書かれており、データベースに登録していない状態では有効ではな > いのか > と思い、param変数を一度controllerに渡し、バリデー > トチェックをかける > という仕様に変えました。 とりあえず、モデルオブジェクトを保存する時でなくても検証は呼べま す。 任意の場面で検証を使うにはvalid?()メソッドを呼びだせば OKです。 [rails:387] 以下のやりとりに書いてあるのでご参照下さい。 http://www.fdiary.net/ml/rails/msg/387 で、単刀直入にいってget_registメソッドを増やした結果、そこ で params[:service] が次に 流れていないのではと思います。 コードで見えてない部分なのでなんとも言えませんが、session [:service] で、confirm に パラメータを渡すようにしていませんか? get_regist から redirect_to する時に、 params[:service] [:membertype_id] を使用しています ので。 本来の流れであるなら、 @service = Service.new(params[:service]) として、 redirect_to :action => "confirm", :id =>@service というようにparams[:service]を渡してやる事になるかと思いま す。 渡していなければ、confirm で参照する事は出来ません。 今のコードのままでのとりあえずの解決策としては、 hiddenの 部分を、 params[:service][:area_id] ではなく、session[:service] [:area_id] にすればとりあえず動くの ではと思います。 しかし、session で渡すのはあまり良い方法とはいえません。 拙記事ですが、るびま 0015 号の Rails はまり道に session を使った場合の問題を書いてます ので、よかったらご覧下さい。 http://jp.rubyist.net/magazine/?0015-RubyOnRails 又、ライドオン Rails に載っているスペシャルジェネレーション (not Ajax)が、確認画面を使用 していますので、色々と参考になるかと思います。 根本的な解決策としては、params を使って、次にちゃんと渡し てやるように修正されるのがよ いのではないかと思います。 それと、気になった点ですが、Service ではなく Membertype (会員モデル?)主体の操作をしたい のではないですか? Membertype に従属する Serviceを登録という観じがするのですが? もしそうでしたら、これもスペシャルジェネレーションが参考になるは ずです。 又、記事中では触れていませんが、Rails はまり道で用意した Rails アプリにも、スペシャルジェ ネレーションを参考(というか殆ど写した気がします)に、 各ユーザの年休を登録する画面があり ます。 -- ML: rails@r... 使い方: http://QuickML.com/
@ 1447 2006-08-02 23:29 [twata_nabe@y... ] habtm で param を受け取る方法 1456 2006-08-03 04:55 ┗[yuichi_katahira@m...] 1457 2006-08-03 05:01 ┗[yuichi_katahira@m...] @ 1458 2006-08-03 15:29 ┗[twata_nabe@y... ] @ 1459 2006-08-03 15:38 ┣[twata_nabe@y... ] -> 1461 2006-08-04 04:26 ┗[yuichi_katahira@m...]