2010-08-30 3 views
0

J'ai une relation un à plusieurs avec un formulaire enfant imbriqué à l'aide d'une opération fields_for.Comment configurer un message d'erreur pour un champ qui fait partie d'un sous-formulaire fields_for

Je souhaite utiliser la gestion des erreurs intégrées aux rails pour afficher les messages d'erreur sur les enfants à l'aide de la méthode error_message_on.

Exemple:

 <% 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> 
... 

Répondre

2

u essayé f.error_messages Avez-pour afficher les erreurs d'affaires et pour enfants sous forme d'heures, utilisez hours_form.error_messages.

exemple

 <% 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> 
Questions connexes