如何在表单顶部放置自定义错误消息?

时间:2011-03-03 20:07:06

标签: ruby-on-rails forms message

这样的新手问题,但我似乎无法解决这个问题。

如果我有一个简单的Rails 2.3.5表单:

- form_for CardSignup.new do |f|
   = f.error_messages
  .grid_1.alpha.align_right
    = f.label :zip_code, 'zip'
  .grid_1.omega.alpha
    = f.text_field :zip_code, :style => "width: 75px;"
    %div{:class => 'error_message'}
  .clear

如何让error_message出现在表单的顶部,而不是表单的特定位置?

我使用的是= f.error_messages,但是当它放在表单顶部时,它不会显示任何内容。

2 个答案:

答案 0 :(得分:1)

是的,我也在寻找这个。无论如何,这就是我弄清楚的方式。 所以我们需要做的就是更新flash [:alert]或者其他任何内容,并在布局文件的顶部放置flash [:alert]。 现在 如果

,你会这样做
<%= simple_form_for(@boing) do |f| %>
  <% if @boing.errors.any? %>
    <% flash[:alert] = "stuff" %>
  <% end %>
....

现在您不需要<%= flash[:alert] = "stuff" %>,否则它会在内联和顶部显示为&lt;%=%&gt;用于在浏览器中显示。 希望有所帮助

答案 1 :(得分:0)

为什么在视图中使用CardSignup.new而不是在控制器中定义@card_signup = CardSignup.new?如果您这样做,可以致电

<%= @card_signup.error_messages %>

<%= error_messages_for :card_signup %>

在视图文件中的任何位置,它将显示@card_signup对象的错误消息,您可以像这样调用您的表单:

<% form_for @card_signup do |f| %>