bootstrap_flash显示模型错误消息

mjn*_*sim 2 ruby-on-rails twitter-bootstrap

我正在使用Rails 4.0和在twitter-bootstrap-rails声明bootstrap_flash上方显示通知的gem yield.

我在错误集合中添加错误的一种方法是:

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

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

在顶部显示表单上方的验证错误消息的最佳方法是什么,尤其是在使用bootstrap时?

Leg*_*ger 6

我是通过flash来做的,它就像一个哈希闪存[:danger],flash [:success]等:

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

flash[:success] = "Signup passed successful"
Run Code Online (Sandbox Code Playgroud)

并在application.html.erb(布局)中迭代flash哈希

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

  <%= yield %>
  ...
</div>
Run Code Online (Sandbox Code Playgroud)

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

PS我个人使用thomas-mcdonald的Bootstrap 3 gem bootstrap-sass,但方法对你也有用.Bootstrap 2使用:error而不是:danger和.alert-block而不是.alert