私の見解では、各フォームフィールドの下のフォームのフィールドごとにエラーメッセージを表示したいとします。だからこのようなことをしているIm:括弧のついた検証エラーメッセージ
<% if @event.errors.full_message(:date, @event.errors[:date]) %>
<div class="alert alert-danger alert-dismissible fade in" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Fechar"><span aria-hidden="true">×</span></button>
<%= @event.errors.full_message(:date, @event.errors[:date]) %>
</div>
<% end %>
しかし、メッセージには大括弧と属性の名前が付いています。すべてのエラーメッセージを同時に表示するには、フォーム上部にeach
を置いてはいけません。フォーム上の各入力に対してそれぞれのエラーを表示したいと思います。角括弧とメッセージの属性の名前を使わずに、どうすればいいですか?
これは@Alex Kojinに影響しました。しかし、**。join( '。')**を使用すると、メッセージの大括弧が削除されるのはなぜですか? – churros
'full_messages'メソッドはメッセージの配列を返します。角カッコは、プリントアウトされている配列オブジェクトです。 http://api.rubyonrails.org/classes/ActiveModel/Errors.html#method-i-full_messages – chrismanderson
@churros '@ event.errors [:date]'は配列を返します。 'join'メソッドは配列項目を文字列に結合します。 –