Tengo un problema de formulario anidado. Implementé la solución de formularios anidados de los railscasts 196 & 197. Funciona si no tengo errores de validación.rails fields_for no se procesa después de un error de validación en el formulario anidado
Por lo tanto, la forma se visualiza perfectamente cuando se carga, incluidos los campos anidados (en la parte fields_for).
Pero, el formulario tiene validaciones. Cuando falla una validación, el controlador renderiza: nuevo. A continuación, el formulario representa los campos del modelo vinculados como aceptables, pero los campos anidados ya no se representan. ¿Existe alguna solucion para esto?
el controlador
def new
@property = Property.new
@property.images.build
end
def create
@property = Property.new(params[:property])
if @property.save
flash[:success] = t('Your_property') + ' ' + t('is_successfully_created')
redirect_to myimmonatie_url
else
render :action => 'new'
end
end
parte de la vista:
<% form_for :property, @property, :url => { :action => "create" }, :html => { :multipart => true } do |f| %>
<div id="new-property-form-spannedcols">
<div class="formField inptRequired">
<%= f.label :postal_code, t("Postal_code") %>
<%= f.text_field :postal_code, :class => 'inptMedium short' %>
</div>
<div id="city_row" class="formField inptRequired">
<%= f.label :city, t("City") %>
<div id="city_cell">
<%= render :partial => 'ajax/cities', :locals => { :postal_code => @property.postal_code } %>
</div>
</div>
...
<% f.fields_for :images do |builder| %>
<div class="formField">
<%= builder.label :photo, t("Photo_path_max_3mb") %>
<%= builder.file_field :photo, :class => 'inptMedium' %>
<%= builder.hidden_field :order, :value => "1" %>
</div>
<% end %>
</div> <!-- /new-property-form-spannedcols -->
<div class="formBtn">
<%= f.submit t("Save"), :class => 'btnMedium bg-img-home' %>
</div> <!-- /formBtn -->
<%- end -%>
Hola, No arroja un error, simplemente no se representa, tampoco hay ningún error en el registro. Y sí, ¡su solución funciona! :) Gracias –