bootstrap_flash显示模型错误消息

时间:2013-10-21 19:57:06

标签: ruby-on-rails twitter-bootstrap

我正在使用Rails 4.0和twitter-bootstrap-rails gem,它会在bootstrap_flash语句上方显示yield的通知。

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

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

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

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

2 个答案:

答案 0 :(得分:6)

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

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

flash[:success] = "Signup passed successful"

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

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

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

请注意,您最好使用标准bootstrap:key(:sucess,:danger等)来实现正确的自动格式化 Alerts in Bootstrap 3

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

答案 1 :(得分:0)

您好bootstrap_flash旨在与Rails&#39;闪光法。它可以配置为执行您想要的操作,包括定位要显示的特定容器。

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