我一直在關注嵌套窗體和複雜窗體的Railscasts插曲。在創建多個模型時,我能夠編輯,更新,刪除和創建嵌套在批處理模型中的示例模型的記錄。預計參數「樣本」的散列(已獲得陣列)
我一直在打破我的頭,很久沒有試過尋找解決這個問題的方法。
我的開發日誌文件給了我下面的錯誤。
錯誤消息:
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型ARGS當我運行的Rails 3.你認爲自己做的,在所有的時候碰到了類似的問題?如果不是,你能提供整個視圖嗎? (也許在pastie.org) – JellicleCat 2012-06-15 15:13:11
當字符串數組包含一些空元素時,我遇到了這個錯誤消息。 – 2015-08-21 01:07:25