Rails 4中对象的二级嵌套失败

时间:2014-06-01 18:32:41

标签: ruby-on-rails ruby ruby-on-rails-4

我正在尝试使用Rails构建一个运行联盟的应用程序,我有3个级别的嵌套。我有一个季节模型,将有4个匹配,每个匹配将有3场比赛。我使用的是accepts_nested_attributes_for方法,因此我可以使用build

我可以通过赛季控制器为新赛季建立4场比赛,但是一旦我尝试建立比赛,我的rails服务器退出时没有错误消息。如果我尝试使用rails控制台,我可以为一个季节构建匹配,并且在保存季节时,所有内容都会成功保存到数据库。

但是,如果我执行m = Match.new我无法再键入m.races.build并创建竞赛对象 - 控制台会像服务器一样退出,而不会显示任何错误消息。 development.log

中没有消息

我的模型如下:

class Season < ActiveRecord::Base
  has_many :matches
  accepts_nested_attributes_for :matches
end

class Match < ActiveRecord::Base
  belongs_to :season
  has_many :races
  accepts_nested_attributes_for :races
end

class Race < ActiveRecord::Base
  belongs_to :match
end

在我的季节控制器中,我有以下内容:

def new
  @season = Season.new
  3.times do
    match = @season.matches.build
    4.times { match.races.build } # comment out this line and the form displays
  end
end

我花了几个小时试图弄清楚我做错了什么,但我很难过。

0 个答案:

没有答案