こんにちは。私は私の特定のケースドン」に関するホームクラスでこのRailsでアソシエーションモデルを削除する
module Settings
attr_reader :person
attr_reader :address
def self.included(base)
base.belongs_to :city
base.belongs_to :entity
[...]
end
[...]
end
と似たような都市モデルの関連性を持っているsettings.rbで
class Home < ActiveRecord::Base
include settings
end
:
さて、私はこれに似た何かを持っています意味をなさないそして私は自分のコードDRYを維持するためにそれを削除する方法を見つける必要があります。
ありがとうございました!
注:投票の前にフィードバックをお願いします。
私はActiveRecordのような方法は思い出せませんが、私は反対側からこの問題にアプローチします。私はあなたが最初に必要でない団体を追加しないほうがずっと良いと思います。オプションの1つは、すべての 'belongs_to'呼び出しを、必要な関連付けのリストを受け入れる別のメソッドに移動することです。その場合は、モジュールをインクルードした後に明示的にそのメソッドを呼び出さなければなりませんが、すべてを追加して不要な関連付けを削除するよりも優れています。 –
例外が1つしかない場合は、別のコードをHomeクラスに入れます。モジュールを再利用する他のクラスはインクルードを使用します。 DRYの多くは常に便利ではありません。 – eveevans
私はあなたがこれについて少しペナルティをしていると思います...インスタンスがそれらに応答しないように、メソッドを削除する理由はありません。その背後にある理由が何であれ、まあ、それは不明です。なぜこれをやりたいのかを明確にしてください。 –