错误显示在哪里? restrict_with_error验证

时间:2016-08-24 15:33:22

标签: ruby-on-rails

我希望在Rails 4.2中使用restrict_with_error验证。

在这个应用程序中,一个区域有多个公寓。如果区域有与之相关的公寓,我想阻止区域被删除。

以下是区域模型:

class Area < ActiveRecord::Base
    has_many :apartments, :dependent => :restrict_with_error
    validates :name, presence: true
end

以下是用户可以删除区域的视图:

<% @areas.each do |a| %>
      <tr>
        <td><%= a.id %></td>
        <td><%= a.name %></td>
        <td><%= a.notes %></td>
        <td><%= link_to 'Destroy', a, method: :delete, data: { confirm: 'Are you sure you want to delete this area?' } %></td>
      </tr>
    <% end %>
  </tbody>
</table>

如果我尝试删除具有相关公寓的区域,则会受到限制。但是,不会显示错误。

这可能是一个非常简单的问题,但如果删除受限制,错误会显示在哪里?

提前非常感谢!

1 个答案:

答案 0 :(得分:1)

您需要访问区域错误。您可以在区域控制器中执行此操作:

  def destroy
    unless @area.destroy
      flash[:notice] = @area.errors.full_messages[0]
    end 
    redirect_to areas_path
  end