He estado siguiendo episodios de Railscasts de formularios anidados y formularios complejos. Durante el tiempo de creación de modelos múltiples en un solo formulario, pude editar, actualizar, eliminar y crear registros para modelos de muestra que estaban anidados en el modelo de Batch.esperado Hash (get Array) para param 'samples'
He estado rompiendo la cabeza desde hace mucho tiempo e intenté buscar pero no he podido encontrar la solución adecuada para resolver este problema.
mi archivo de registro de desarrollo me da el siguiente error.
MENSAJE DE ERROR:
Status: 500 Internal Server Error
expected Hash (got Array) for param `samples'
en mi controlador Tengo la acción de actualización como esto
def update
@batch = Batch.find(params[:id])
respond_to do |format|
if @batch.update_attributes(params[:batch])
flash[:notice] = 'Successfully updated Batch.'
format.html { redirect_to(@batch) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @batch.errors, :status => :unprocessable_entity }
end
end
end
mi punto de vista es algo como esto:
<%= form_for @batch do |f| %>
......
<%= f.fields_for :samples do |s_form| %>
.... s_form things
<% end %>
<% end %>
mi modelo contiene la misma cosas:
has_many :samples, :dependent => :destroy
accepts_nested_attributes_for :samples, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
Todas las sugerencias son apreciadas.
me encontré con un problema similar cuando se utiliza 'text_field_tag' en mi forma debido a que suministré Rails-2-estilo args cuando estaba corriendo Rails 3. ¿Te ves haciendo eso en absoluto? Si no, ¿puede proporcionar la totalidad de su punto de vista? (tal vez en pastie.org) – JellicleCat
Me encontré con este mensaje de error cuando la matriz de cadenas contenía algunos elementos nulos. –