我正在查看一些代码,我看到delegate
和has_many + through
正在使用,而不是设置其他关联。我想知道使用delegate
比设置另一个has_many
关联有什么好处。
class AppleCore
belongs_to :apple
delegate :tree to :apple
end
然后
class Apple
belongs_to :tree
end
最后
class Tree
has_many :apples
end
在这个例子中......为什么我们只是将树委托给苹果而不是在AppleCore和Tree之间建立关联?
答案 0 :(得分:0)
我认为是因为AppleCore和Tree之间没有直接联系。 This site might help clear things up.
答案 1 :(得分:0)
它允许您使代码更具可读性。您可以拨打apple_core.tree
而不是apple_core.apple.tree
。其中apple_core是AppleCore的一个实例。如果将前缀设置为true,则delegate :tree to :apple, prefix: true
。您将使用apple_core.apple_true
进行访问。
有关详情,请查看Rails Api Documentation。