私は現在、CodeSchool (Rails 4 Patterns) からコードをより適切にカプセル化するためのいくつかのベスト プラクティスと方法を研究しています。
モデルのすべてのビュー関連ロジック (フォーマットなど) を提供する非アクティブ レコード モデルにビュー固有のロジックを移動する「モデル デコレータ」の使用に出くわしました。これは、単一責任の原則とも一致します。
上記を前提として、Railsscope
をレポートのクエリのみに使用した場合、SRP 違反と見なされますか?
例えば
class Sales < ActiveRecord::Base
scope :sales_per_day, -> { group(:sale_date).sum(:total_sale) }
end
これは単なるレポートの例であるため、例に問題があると思われるものは無視してください。そのスコープは、おそらくレポートを処理するデコレータ モデルであるデコレータ モデルに移動できる SRP の違反と見なされますか? または、どのような場合でも、スコープが SRP に違反することはありません。
編集:私の実際の質問に合うように質問と例を言い換えました。