カスタム カレンダー検証ルーチンを含むフォームがあります。このエラーに関する多くの動的な情報をユーザーに表示できるようにしたいと考えています。
この意味でerrors.add(:base, "this is wrong because ...")
それをカットしません。そこで、実際の検証を実行するオブジェクトのインスタンスをエラー配列に渡すという考えに至りました。インスタンスでメソッドを呼び出して、ビューが必要とする情報のビットをチェリーピックするのは、ビューに任せます。
私のモデル検証ルーチンには次のものがあります。
errors.add(:date_range, [calendar] )
ビューで、私はこれを行います:
<p><%= @event.errors[:date_range].first.first.parse_events.to_sentence %></p>
配列リテラルを追加する必要がありました。そうしないとempty?
、Rails が呼び出すメソッドが失敗します。
これは機能しますが、臭いです!私は代わりに使用することを考えましrender_to_string
たが、明らかにそれはモデルから呼び出すことはできません (または呼び出すべきではありません)。
これを改善する方法について何か提案はありますか?