モデルTopic
内:
class Topic < ActiveRecord::Base
has_many :choices, :dependent => :destroy
accepts_nested_attributes_for :choices
attr_accessible :title, :choices
end
POST 作成中に、Rails が期待するのではなく、params
送信されたものが であり、エラーが発生します。:choices
:choices_attributes
ActiveRecord::AssociationTypeMismatch (Choice(#70365943501680) expected,
got ActiveSupport::HashWithIndifferentAccess(#70365951899600)):
JSON呼び出しの代わりにaccepts_nested_attributes_for
パラメータを渡すように設定する方法はありますか?choices
choices_attributes
現在、コントローラーで属性の作成を行いました(これはエレガントなソリューションではないようです):
def create
choices = params[:topic].delete(:choices)
@topic = Topic.new(params[:topic])
if choices
choices.each do |choice|
@topic.choices.build(choice)
end
end
if @topic.save
render json: @topic, status: :created, location: @topic
else
render json: @topic.errors, status: :unprocessable_entity
end
end