2006-05-31 (水) [長年日記]
■ [Rails] フォームの作り方
GettingReal的にはインタフェースファーストなので、静的HTMLを先に作るのはいいんだが、「静的HTMLフォーム」→「Railsヘルパ使用のフォーム」の脳内変換をもっと効率的にできないものか。時間かかりすぎ。誰だRailsなら10倍(ryとか言ったのは。
とりあえずアクション作る。
def new @hoge = Hoge.new params[:hoge] end def create_confirm new render :action => 'new' end
で、new.rhtm を編集していく。new.rhtmlには
<%= debug @hoge %>
を入れておく。
で、ちゃんと入力したものがフォームに戻ってくるまで修正していく(ここができていればupdateも終わったも同然)。ヘルパを使えば間違いなく戻ってくるんだけど、ヘルパで補えない変則的なフォームの部分は自作しなきゃいけないので、ここらへんを注意しとく(これはダルいよねー)。
で、次にvalidationを追加する。
def create_confirm new @hoge.valid? render :action => 'new' end
今度はvalidationが効いているかどうかチェックする。
<%= error_message_on "hoge", "fuga", "フガ項目" %>
を各フォームに追加していく(これが相当ダルい)。
ああ、error_messages_for は見栄えが悪いので、すでに無かったことにしている(あれがRailsならではな気もするけど)。
昨日書いた「タイプをモデルに入れる」話が生きてくるのは、このvalidationのところで、たとえばgender_typeだったら、
validates_inclusion_of :gender_type, :in => GENDER.keys
とかできてうれしい。
なんかてきとーな文章になった。
[ツッコミを入れる]
