建立模型关联列表

时间:2013-03-17 00:20:32

标签: ruby-on-rails ruby-on-rails-3.2

我正在构建一个应用程序,允许舞者创建“圆形”或舞蹈动作列表。我有一个移动模型和一个轮模型。我想让用户选择他们可用的动作并将它们添加到一轮。 我不太确定这些模型之间需要的关联。现在移动模型belongs_to:round和set model has_many:moves。

我不一定了解如何将动作添加到回合中。如第1轮包含,move1,move2,move3。我很困惑,因为在这种情况下使用round_id本身似乎没有意义,因为用户在创建回合时将动作添加到回合中,而不是在创建移动时。

基本上我的想法是,我需要能够创建一个新列表并添加相关的移动。

1 个答案:

答案 0 :(得分:1)

您需要一个额外的表来跟踪与回合相对应的所有动作;

class Move < ActiveRecord::Base
     has_many :roundmoves
     has_many :rounds, :through => :roundmoves
end

class Round < ActiveRecord::Base
     has_many :roundmoves
     has_many :moves, :through => :roundmoves
end

class RoundMove < ActiveRecord::Base
     belongs_to :round
     belongs_to :move
end

检查指南以获得一个很好的例子: http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association