2016-05-18 2 views
1

いくつかのコードを調べていますが、追加の関連付けを設定する代わりに、delegatehas_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とツリーの間の関連付けを作成していませんか?

答えて

0

コードを読みやすくすることができます。 apple_core.apple.treeの代わりにapple_core.treeに電話することができます。 apple_coreはAppleCoreのインスタンスです。接頭辞をtrueに設定した場合、delegate :tree to :apple, prefix: trueapple_core.apple_trueを使用してアクセスします。

詳細については、Rails Api Documentationをご確認ください。

関連する問題