2016-05-18 2 views
1

Я просматриваю код, и я вижу delegate и has_many + through вместо того, чтобы настраивать дополнительную связь. Мне было интересно, какая польза от использования delegate закончилась, установив еще одну ассоциацию has_many.Использование делегата вместо создания ассоциации в Rails. В чем смысл?

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

Это позволяет сделать код более читаемым. Вы можете позвонить apple_core.tree вместо apple_core.apple.tree. Где apple_core является экземпляром AppleCore. Если вы установите префикс в true, delegate :tree to :apple, prefix: true. Вы получите доступ с помощью apple_core.apple_true.

Дополнительная информация: Rails Api Documentation.

Смежные вопросы