【问题标题】:different ways to display errors in a Rails view在 Rails 视图中显示错误的不同方法
【发布时间】:2011-12-31 17:57:00
【问题描述】:

在我看来,我一直包括以下部分(不是很干):

<% if @model.errors.any? %>
  ...
  <% @model.errors.full_messages.each do |msg| %>
    ...
  <% end %>
<% end %>

不过,Rails 也提供了flash[:error] 功能。它是否仅适用于像控制器异常这样的单个故障消息?还是应该对所有内容都使用flash[:error] 并将模型错误复制到该哈希中?

【问题讨论】:

    标签: ruby-on-rails view model


    【解决方案1】:

    诸如模型错误之类的事情可能存在于局部;将相关对象作为本地对象传入:

    <%= form_for(@micropost) do |f| %>
      <%= render 'shared/error_messages', :object => f.object %>
    

    就我个人而言,我觉得 flash 作用域适用于不同类别的消息,但从根本上说,将它用于验证错误也没有什么“不正确”的地方。

    【讨论】:

    • 哈,谢谢你提醒我关于局部的事情!不知道为什么我一开始没有想到。
    • 您还可以按照人们已经习惯使用 if f.object.errors.any? 的方式对其进行进一步抽象,这在您进行嵌套关联和其他事情时往往会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2022-07-03
    • 1970-01-01
    • 2019-08-11
    • 2011-03-21
    • 2012-05-13
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    相关资源
    最近更新 更多