Rails 3.2.9 accepted_nested_attributes_for混淆

时间:2012-12-18 19:55:39

标签: ruby-on-rails associations belongs-to

我有一个模特赛事和一个模特意甲。 它们的定义如下:

in event.rb

belongs_to :serie
accepts_nested_attributes_for :serie
attr_accessible :serie

in serie.rb

has_many :events

事件表有serie_id键。

在活动表格中,我有以下几点:

 form_for @event do |f|
   ...
   ...
   f.fields_for @event.serie do |serie_f|
     ....
   end
 end

对控制器的请求是这样的:

... "event"=>{...., "serie"=>{"..."=>"19/12/2012", ....}, ...}...

在events_controller的创建动作中,我有:

def create
  @event = current_user.events.new(params[:event])
  ....

在这一行中,我收到以下错误:

ActiveRecord::AssociationTypeMismatch (Serie(#134112340) expected, got ActiveSupport::HashWithIndifferentAccess(#92663620))

不确定问题是什么

1 个答案:

答案 0 :(得分:1)

你应该检查这个问题:ActiveRecord::AssociationTypeMismatch when attempting to save nested attributes in Rails 我认为您只需在模型中将attr_accessible :serie替换为attr_accessible :serie_attributes 在您看来,请尝试f.fields_for :serie do |serie_f|而不是f.fields_for @event.serie do |serie_f|