Я слежу за эпизодами Railscasts вложенных форм и сложных форм. За время создания нескольких моделей в одной форме я смог редактировать, обновлять, удалять и создавать записи для образцов моделей, которые были вложены в модель Batch.ожидаемый хэш (полученный массив) для образцов param '
Я долгое время ломаю голову и тоже искал, но не мог найти правильное решение для решения этой проблемы.
Мой файл журнала разработки дает мне следующую ошибку.
ОШИБКА СООБЩЕНИЕ:
Status: 500 Internal Server Error
expected Hash (got Array) for param `samples'
в мой контроллер у меня есть действие обновления, как этот
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
мой взгляд, что-то вроде этого:
<%= form_for @batch do |f| %>
......
<%= f.fields_for :samples do |s_form| %>
.... s_form things
<% end %>
<% end %>
моя модель содержит то же самое материал:
has_many :samples, :dependent => :destroy
accepts_nested_attributes_for :samples, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
Все предложения приветствуются.
Я столкнулся с аналогичной проблемой при использовании 'text_field_tag' в моей форме, потому что поставляется Rails-2-стиль арг, когда я бегала Rails 3. Как вы видите, что делаете это вообще? Если нет, можете ли вы представить всю свою точку зрения? (возможно, на pastie.org) – JellicleCat
Я столкнулся с этим сообщением об ошибке, когда массив строк содержал несколько нулевых элементов. –