Как разместить пользовательские сообщения об ошибках в верхней части формы? - PullRequest
0 голосов
/ 03 марта 2011

Такой вопрос новичка, но я не могу решить его.

, если у меня есть простая форма 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 ]

1 голос
/ 14 марта 2011

хах, я тоже это искал. В любом случае, вот как я это понял. Поэтому все, что нам нужно сделать, это обновить flash [: alert] или что-то еще, и у вас должно быть flash [: alert] вверху файла макета. Сейчас все, что вы делаете, если

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

теперь вам не нужно <%= flash[:alert] = "stuff" %>, в противном случае оно будет отображаться в обоих местах: в строке и вверху, так как <% =%> для отображения в браузере. Надеюсь, это поможет

0 голосов
/ 16 марта 2011

Почему вы используете CardSignup.new в представлении вместо определения @card_signup = CardSignup.new в контроллере? Если вы делаете это, вы можете позвонить

<%= @card_signup.error_messages %>

или

<%= error_messages_for :card_signup %>

в любом месте файла представления, и он покажет сообщения об ошибках для объекта @card_signup, и вы можете вызвать свою форму следующим образом:

<% form_for @card_signup do |f| %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...