2

我正在使用 Rails 4.0 和在语句上方twitter-bootstrap-rails显示通知的 gem 。bootstrap_flashyield

我将错误放入错误集合的一种方法是:

if there_is_an_error
  msg = "You have an error here..."
  self.errors.add(:base, msg)
end

这应该有效,因为我在特定项目旁边显示内联错误,所以据我所知,我对此没有任何问题。但有时我也想在表单顶部显示验证错误。

在表单上方、顶部显示验证错误消息的最佳方式是什么,尤其是在使用引导程序时?

4

2 回答 2

6

我是通过 flash 完成的,它的作用类似于哈希 - flash[:danger]、flash[:success] 等:

在与表单相关的控制器中,在 redirect_to 之前使用flash[] (在渲染之前使用flash.now[]

flash[:success] = "Signup passed successful"

并遍历 application.html.erb 中的 flash 哈希(布局)

<div class="container">
  ...
  <% flash.each do |key, value| %>
    <%= content_tag(:div, value, class: "alert alert-#{key}") %>
  <% end %>
  ...

  <%= yield %>
  ...
</div>

请注意,您最好使用标准引导程序 :key (:sucess, :danger 等) 在引导程序 3 中进行正确的自动格式化警报

PS 我个人使用 thomas-mcdonald 的 Bootstrap 3 gem bootstrap-sass,但方法也应该适合你。Bootstrap 2 使用 :error 代替 :danger 和 .alert-block 代替 .alert

于 2013-10-21T20:34:21.030 回答
0

您好 bootstrap_flash 设计用于 Rails 的 flash 方法。它可以配置为执行您想要的操作,包括定位要显示的特定容器。

就验证而言,它不支持开箱即用,因为许多用户正在实施他们自己的解决方案,通常是客户端使用 ajax 从服务器获取错误。对于正确的方法是什么,我们没有达成太多共识,所以我们把它排除在外,因为其他库擅长它。

于 2014-07-30T23:01:51.037 回答