さまざまな入力値を検証しようとしています。たとえば、「ドメイン」と「電子メール」。両方に値が必要で、一意である必要があります。だから私はそれらを検証しようとします
validates :domain,
:presence => true,
:uniqueness => { :case_sensitive => true }
validates :email,
:presence => true,
:uniqueness => { :case_sensitive => true }
しかし、フラッシュ メッセージを表示すると、次の 4 つのエラーが表示されます。
["Domain can't be blank", "Domain has already been taken", "Email can't be blank", "Email has already been taken"]
徐々にチェックすることはできますか?入力フィールドに値がない場合、ユーザーは
["Domain can't be blank"]
ただし、入力フィールドに値があり、一意でない場合、ユーザーは
["Domain has already been taken"]
どうすれば実装できますか?
編集
エラーメッセージを出力するコードは次のとおりです。
<% [:error].each do |key| %>
<% if flash[key] %>
<div class="<%= key %>" id="flash">
<%= flash[key] %>
</div>
<% end %>
<% end %>
そして、ここでエラーを作成するコントローラー:
def create
respond_to do |format|
# save form data
@login = Login.new(params[:login])
# if validation fails, throw error messages
if !@login.save
flash[:error] = @login.errors.to_a
end
# redirect to landingpage
format.html { redirect_to :root }
end
end