Как настроить error_message_on для поля, которое является частью формы fields_for - PullRequest
0 голосов
/ 30 августа 2010

У меня есть отношение один ко многим с дочерней формой, которая вложена с помощью операции fields_for.

Я хочу использовать встроенную обработку ошибок в rails для отображения сообщений об ошибках на дочерних элементах методом error_message_on.

Пример:

      <% form_for @business, :url => {:action => :page, :page => @page}, :html => {:method => :put } do |f| -%>
        <h5><strong>More Details</strong></h5>
        <div class="clear"></div>
        <div class="col-1">
          <label for="hours">Hours</label>
          <table class="hours">
            <tbody>
              <% f.fields_for :hours do |hours_form| %>
              <tr>
                <td><%= hours_form.label :day, hours_form.object.day %>:<%= hours_form.hidden_field :day %></td>
                <td><%= hours_form.text_field :open_time, :class => 'input' %></td>
                <td>to</td>
                <td><%= hours_form.text_field :close_time, :class => 'input' %></td>
                <td><%= hours_form.check_box :closed %></td>
                <td class="c6"><%= hours_form.label :closed, 'Closed this day' %>
                <%= hours_form.error_message_on :open_time, :css_class => 'cant-be-blank' %>
                <%= hours_form.error_message_on :close_time, :css_class => 'cant-be-blank' %></td>
              </tr>
              <% end -%>
            </tbody>
          </table>
...

1 Ответ

2 голосов
/ 30 августа 2010

Вы пытались f.error_messages для отображения бизнес-ошибок и для формы дочерних часов, используйте hours_form.error_messages.

Пример

     <% form_for @business, :url => {:action => :page, :page => @page}, :html => {:method => :put } do |f| -%>
        <%= f.error_messages %>
        <h5><strong>More Details</strong></h5>
        <div class="clear"></div>
        <div class="col-1">
          <label for="hours">Hours</label>
          <table class="hours">
            <tbody>
              <% f.fields_for :hours do |hours_form| %>
              <%= hours_form.error_messages %>
              <tr>
                <td><%= hours_form.label :day, hours_form.object.day %>:<%= hours_form.hidden_field :day %></td>
                <td><%= hours_form.text_field :open_time, :class => 'input' %></td>
                <td>to</td>
                <td><%= hours_form.text_field :close_time, :class => 'input' %></td>
                <td><%= hours_form.check_box :closed %></td>
                <td class="c6"><%= hours_form.label :closed, 'Closed this day' %>
                <%= hours_form.error_message_on :open_time, :css_class => 'cant-be-blank' %>
                <%= hours_form.error_message_on :close_time, :css_class => 'cant-be-blank' %></td>
              </tr>
              <% end -%>
            </tbody>
          </table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...