0

我试图让我的一个模型接受嵌套属性。模型名称为 Tournament,Tournament 有很多 MapList。另外值得注意的是,锦标赛验证至少存在一个 MapList。同样,MapList 会验证锦标赛 ID 是否存在。作为参考,MapList 只有 3 个属性:tournament_id、map_order 和 map_id。代码,正如它在锦标赛中出现的那样,是:

accepts_nested_attributes_for :map_lists

我的问题是关于新的锦标赛记录。例如,我想使用以下代码创建一个新的锦标赛:

t = Tournament.new({map_lists_attributes: [{map_id: 1, map_order: 1}]}, as: :admin)

但是,此代码不起作用。如果我在实例化 t 后立即调用 t.map_lists,我会得到一个空关系。显然,我无法设置锦标赛 ID,因为我正在创建新记录。我怎么解决这个问题?

4

1 回答 1

0

attr_assessible 也将防止嵌套属性......所以你需要像这样配置:

class Tournament
  accepts_nested_attributes_for :map_lists
  attr_assessible :map_lists_attributes #and all your others
end
于 2012-04-16T18:55:11.010 回答