Ho seguito episodi di Railscast di moduli nidificati e forme complesse. Durante la creazione di più modelli in un unico modulo, sono stato in grado di modificare, aggiornare, eliminare e creare record per i modelli di esempio che erano nidificati nel modello Batch.previsto Hash (ottenuto matrice) per param 'samples'
Ho rotto la testa da molto tempo e ho provato a cercare in giro, ma non sono riuscito a trovare la soluzione giusta per risolvere questo problema.
il file di registro di sviluppo mi dà il seguente errore.
MESSAGGIO DI ERRORE:
Status: 500 Internal Server Error
expected Hash (got Array) for param `samples'
nel mio controller ho l'azione di aggiornamento come questo
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
mio punto di vista è qualcosa di simile:
<%= form_for @batch do |f| %>
......
<%= f.fields_for :samples do |s_form| %>
.... s_form things
<% end %>
<% end %>
mio modello contiene la stessa roba:
has_many :samples, :dependent => :destroy
accepts_nested_attributes_for :samples, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
Tutti i suggerimenti sono apprezzati.
mi sono imbattuto in un problema simile quando si utilizza 'text_field_tag' nella mia forma perché ho fornito Rails-2-style args quando ho girato Rails 3. ti vedi di farlo a tutti? In caso contrario, puoi fornire l'intera vista? (forse su pastie.org) – JellicleCat
Mi sono imbattuto in questo messaggio di errore quando l'array di stringhe conteneva alcuni elementi nulli. –