1

カスタム カレンダー検証ルーチンを含むフォームがあります。このエラーに関する多くの動的な情報をユーザーに表示できるようにしたいと考えています。

この意味で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たが、明らかにそれはモデルから呼び出すことはできません (または呼び出すべきではありません)。

これを改善する方法について何か提案はありますか?

4

0 に答える 0