[前][次][番号順一覧][スレッド一覧]

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...]