我正在构建一个应用程序,允许舞者创建“圆形”或舞蹈动作列表。我有一个移动模型和一个轮模型。我想让用户选择他们可用的动作并将它们添加到一轮。 我不太确定这些模型之间需要的关联。现在移动模型belongs_to:round和set model has_many:moves。
我不一定了解如何将动作添加到回合中。如第1轮包含,move1,move2,move3。我很困惑,因为在这种情况下使用round_id本身似乎没有意义,因为用户在创建回合时将动作添加到回合中,而不是在创建移动时。
基本上我的想法是,我需要能够创建一个新列表并添加相关的移动。
答案 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