ユーザープロファイルを公開する必要があります。ユーザーは、何を表示し、何を表示しないかを選択できます。私のデザインは次のとおりです。
class Report < ActiveRecord::Base
belongs_to :user_data
belongs_to :report_config
delegate :show_name, :show_address, :to => :report_config
delegate :name, :address, :to => :user_data
def filter_data
report = self.user_data
report.name = nil if show_name.false?
report.address = nil if show_address.false?
return report
end
end
class UserData < ActiveRecord::Base
has_many :report
end
class ReportConfig < ActiveRecord::Base
has_many :report
end
filter_data
ただし、 Report オブジェクトを呼び出すと子オブジェクトが返されるため、これはあまり良い設計ではありません。Report
子オブジェクトのすべての属性を許可するにはどうすればよいですか?
継承を考えています (つまり、Report は UserData と ReportConfig を継承していますが、うまくいきません)。私の問題に適合する可能性のある他の設計パターンは何ですか?