这个标题可能听起来不对,但请原谅我,经过十年的Windows开发,我第一次学习Rails。目前,我有一个名为Drill的模型应该包含两个练习。为了根据我目前对Rails的了解做到这一点,我在Drill和Exercise模型之间创建了一个has_many关联......
class Drill < ActiveRecord::Base
has_many :exercises, :dependent => :destroy
end
但我不想要一个开放式的练习列表,而是我想要对一个练习对象有两个引用,一个叫做left_drill,另一个叫做right_drill。根据文档,我已将代码更改为此...
class Drill < ActiveRecord::Base
has_one :right_drill, :class => :exercise
has_one :left_drill, :class => :exercise
end
但我不知道这是否正确,我很难测试它,因为我不知道如何分别调整练习模型。截至目前,练习模型保持不变......
class Exercise < ActiveRecord::Base
belongs_to :drill
end
很难搞清楚如何实现这一目标,并且在我继续阅读文档时,我希望有人可以给我一点方向。
非常感谢你的智慧!
答案 0 :(得分:3)
你所拥有的是正确的,但通常显式的类名是一个字符串,如下所示:
class Drill < ActiveRecord::Base
has_one :left_drill, :class => "Exercise"
has_one :right_drill, :class => "Exercise"
end
您也可以轻松访问这两个钻取对象,其中my_drill
是Drill
的实例:
my_drill.left_drill
my_drill.right_drill
您可能希望考虑重命名left_exercise
和right_exercise
,以更好地反映它们是Exercise
模型的实例,而不是Drill
模型。