如何:rails base验证视图

时间:2016-05-25 13:52:33

标签: ruby-on-rails

如上所述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'

1 个答案:

答案 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">&times;</a>
      <%== message %>
    </div>
  <% end %>
<% end %>