我有一个带有自定义日历验证例程的表单。我希望能够向用户显示有关此错误的大量动态信息。
从这个意义上说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
,但显然不能从模型中调用(或不应该调用)。
关于如何改进这一点的任何建议?