私はRailscapeのNestedフォームと複雑なフォームのエピソードをフォローしています。単一のフォームで複数のモデルを作成するときに、バッチモデルでネストされたサンプルモデルのレコードを編集、更新、削除、作成することができました。param 'samples'のハッシュ(got array)
私は長年頭を痛めていましたが、この問題を解決するための正しい解決策も得られませんでした。
開発ログファイルに次のエラーが表示されます。
エラーメッセージ:私のモデルは同じが含まれてい
<%= form_for @batch do |f| %>
......
<%= f.fields_for :samples do |s_form| %>
.... s_form things
<% end %>
<% end %>
:私のコントローラで
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
などの更新アクションを持っている私の見解では、このようなものですもの:
has_many :samples, :dependent => :destroy
accepts_nested_attributes_for :samples, :reject_if => lambda { |a| a[:content].blank? }, :allow_destroy => true
すべての提案をいただければ幸いです。
私は自分のフォームで 'text_field_tag'を使用しているとき、私はRailsの3を実行していたとき、私はRailsの-2形式の引数を与えているため、同様の問題に遭遇したあなた自身がすべてであることをやって参照していますか?もしそうでなければ、全体像を提供できますか? (maybe on pastie.org) – JellicleCat
文字列の配列にいくつかのnull要素が含まれていたときにこのエラーメッセージが表示されました。 –