0

サインアップ時に電子メールについて以下を検証するユーザーモデルの行があります

validates :email, presence: true, 
                uniqueness: { case_sensitive: false },
                length: { maximum: 254 }

エラーがある場合は、サインアップページ(「新規」)にエラーメッセージを表示します。コントローラー内:

if @user.save
  redirect_to root_path
else
  render 'new'
end

ビューで:

 <% if @user.errors.any? %>
   <div id="error_explanation">
      <p><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</p>
      <ul>
         <% @user.errors.full_messages.each do |msg| %>
           <li><%= msg %></li>
         <% end %>
      </ul>
   </div>
 <% end %>

ただし、ユーザーが一意ではないメールアドレスを入力した場合は、新しいページにリダイレクトしたいと思います。これを行う方法はありますか?この特定のタイプのエラーに対して別のことを行うようにコントローラーを変更するにはどうすればよいですか?

4

1 に答える 1

1

ActiveRecord モデルが無効ですか? あなたが探しているもののようです

// in controller
redirect_to your_path if @user.errors.invalid?(:email)    
于 2012-10-02T06:21:20.240 に答える