错误消息未出现在视图中

时间:2012-10-17 03:44:07

标签: ruby-on-rails activerecord ruby-on-rails-3.2

我正在编写一个代码,以确保在存在与之关联的子记录时不会删除父记录。

代码如下

class Customer < ActiveRecord::Base
  attr_accessible :name, :number
  has_many :customer_bills

  before_destroy :check_for_bills

  private

  def check_for_bills
    if customer_bills.count > 0
     errors.add :base, "cannot delete customer while Bills exist"
      return false
    end
  end
end

视图

<% if flash[:error] -%>
    <p class='error'><%=h flash[:error] %></p>
  <% end -%>

控制器

def destroy
..
flash[:error] = @customer.errors
..
end

但是,虽然代码工作正常,但我没有收到错误消息?什么似乎是问题?任何指导都会有所帮助。

1 个答案:

答案 0 :(得分:0)

我认为在Rails 3.2中我们必须使用notice而不是flash

视图

<% if notice %>
<p id="notice"><%= notice %></p>
<% end %>

只需尝试上面的代码和相应的样式

CSS

#notice {
color: #000 !important;
border: 2px solid red;
padding: 1em;
margin-bottom: 2em;
background-color: #f0f0f0;
font: bold smaller sans-serif;
}

您可以像以前一样添加错误

添加错误

def ensure_not_referenced_by_any_line_item
  if line_items.empty?
    return true
  else
    errors.add(:base, 'Line Items present')
    return false
  end
end

我正在学习rails,不确定上面是完美的解决方案......