2012-04-16 57 views
0

我想让我的一个模型接受嵌套属性。该模型的名称是锦标赛,锦标赛有许多地图列表。另外值得注意的是,锦标赛至少会验证一个MapList。同样,MapList验证tournament_id是否存在。作为参考,MapList只有3个属性:tournament_id,map_order和map_id。代码,正如它出现在锦标赛一样,是:如何在创建新记录时使用accept_nested_attributes_for?

accepts_nested_attributes_for :map_lists 

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

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

但是,此代码不起作用。如果我在实例化t后立即调用t.map_lists,我会得到一个空关系。显然,自创建新纪录以来,我无法设置tournament_id。我怎么解决这个问题?

+0

你有任何比赛设置attr_accessible?我做的是 – 2012-04-16 18:26:43

+0

。我需要将map_lists添加到可访问列表吗? – Max 2012-04-16 18:34:03

+0

很酷,我刚刚加了一个关于怎么做的答案 – 2012-04-16 18:55:36

回答

0

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

​​
+0

好吧,这让我更接近。现在,新的MapLists正在创建,但我仍然有一个保存问题。 MapLists中的tournament_id似乎没有被设置,所以MapList保存失败。 – Max 2012-04-16 19:01:07

+0

我只是想补充一点,我认为问题来自于锦标赛验证map_order 1有map_list。 – Max 2012-04-16 19:31:26

相关问题