在Ruby On Rails中一致显示flash消息和模型验证错误

时间:2013-10-01 12:49:31

标签: ruby-on-rails error-handling devise rails-flash

人们是否使用统一系统在其应用中显示Flash消息和模型验证错误?或者你把它们分开?

是否有可接受的最佳做法?或者它是否会在视觉上有意义地展示它们。

在使用devise gem之后出现了这个问题,因为它显示了通过flash登录的模型错误,我希望为用户提供一致的体验。

1 个答案:

答案 0 :(得分:2)

使用rails composer一段时间后 - http://railsapps.github.io/rails-composer/ - 我喜欢他们格式化消息的方式,结果我养成了习惯,但这主要是偏好。

在应用程序布局中,在标题下方的顶部附近调用= render 'messages',在某个地方,用户可以接收消息。

然后在消息部分:

- flash.each do |name, msg|
  - if msg.is_a?(String)
    %div{:class => "alert alert-#{name == :notice ? "success" : "error"}"}
      %a.close{"data-dismiss" => "alert"} ×
      = content_tag :div, msg, :id => "flash_#{name}"

我使用simple_form,它使用f.error_notification为表单提供内联错误消息。

它给出了一致的外观,错误消息总是相同的,通知总是相同的,信息总是相同的。请记住,如果您使用模态,则需要将消息直接添加到消息显示到模态体。