如上所述here
您可以将与对象状态相关的错误消息添加为 整体而不是与特定属性相关。您可以使用 这个方法当你想说对象无效时,无论如何 其属性的值。由于错误[:base]是一个数组,你可以 只需在其中添加一个字符串,它就会被用作错误信息。
class Person < ActiveRecord::Base def a_method_used_for_validation_purposes errors[:base] << "This person is invalid because ..." end
我的验证确实有效,但它不会自动显示错误消息。这就是我所拥有的:
def free_plan_can_only_have_one_room
if self.new_record? && (tenant.rooms.count > 0) && (tenant.plan == 'free')
errors.add(:base, "Free plans cannot have more than 1 room")
end
end
任何想法如何为错误创建视图?
我的观点:
= simple_form_for @room, :html => { :class => 'form-horizontal' } do |f|
= f.error_notification
= f.input :name
= f.association :office
= f.button :submit, :class => 'btn-primary'
= link_to 'Back to all rooms', rooms_path, :class => 'btn btn-default'
答案 0 :(得分:0)
尝试在页面顶部的某处放置类似此代码的内容,或者在您希望显示错误的位置显示:
<% @room.errors.values.each do |error_messages| %>
<% error_messages.each do |message| %>
<div class="alert alert-danger">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
<%== message %>
</div>
<% end %>
<% end %>