3

次のような User モデル内の検証を使用して登録フォームを作成しています

 validates_confirmation_of :password, :message = "Passwords do not match"
 validates_uniqueness_of :email, :message = "Email in use"

レジスタは次のようになります

def register
@user = User.new(params[:user])
  if @user.save
    redirect_to(:action => 'login')
  else
  end
end

これらの検証のいずれかをトリガーすると、これらのメッセージをユーザーに返す方法がわかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

8

まあ、これを明示的に行う必要はありません。検証が失敗した場合、エラー メッセージがそのオブジェクトのエラー オブジェクトに書き込まれます @user

そうチェック

@user.errors.count() また @user.errors

ページにエラー メッセージを表示するには

エラーオブジェクトを反復処理するだけです

編集:

<% @user.errors.full_messages.each do |message| %>

<%= message %>

<%end%>
于 2012-06-20T05:44:40.467 に答える