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

rails:284

From: ABE Masahiro <abe@c...>
Date: Tue, 19 Jul 2005 13:49:53 +0900
Subject: [rails:284] belongs_toなフィールドのvalidation

あべです。

フォーム用のヘルパーメソッドは入力エラーの際
  <div class="fieldWithError"> ... </div>
で入力タグを囲んでくれますよね。しかしながら

  http://ap.rubyonrails.com/classes/ActionView/Helpers/FormOptionsHelper.html#M000170

の例に従ってviewに

  select("post", "person_id",
         Person_find_all.collect {|p| [ p.name, p.id ] },
         { :include_blank => true })

のように書き、ブランクのままsubmitすると

  Person can't be empty

とは表示されますが、fieldWithErrorで囲んではくれません。
modelの

  class Post < ActiveRecord::Base
    belongs_to :person
    validates_presence_of :person
  end

の第3行を

  validates_presence_of :person_id

にすると囲んでくれますが、今度はエラーメッセージが

  Person id can't be empty

となってしまいます。ユーザからみると p.name を選択しているので
ここで「id」は不自然です。

本来はどのように書けばいいのでしょうか。


なおsubmit時に動くcontrollerのactionは以下のとおりです。

  def create
    @post = Post.new(@params[:post])
    if @post.save
      redirect_to :action => "list"
    else
      render_action :new
    end
  end

-- 
ABE Masahiro <abe@c...>


--
ML: rails@r...
使い方: http://QuickML.com/
Web Site: http://wiki.fdiary.net/rails/
ML Archives: http://www.fdiary.net/ml/rails/

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

->     284 2005-07-19 06:49 [abe@c...            ] belongs_toなフィールドのvalidation      
       285 2005-07-20 11:48 ┗[abe@c...            ]