0

我目前正在研究一些最佳实践和方法,以更好地封装来自 CodeSchool(Rails 4 模式)的代码。

我遇到了“模型装饰器”的使用,您将视图特定的逻辑移动到非 Active Record 模型中,这些模型服务于模型的所有视图相关逻辑(格式等)。这也符合单一职责原则。

以上述为前提,Railsscope仅用于查询报告是否被视为违反 SRP?

例如

class Sales < ActiveRecord::Base
  scope :sales_per_day, -> { group(:sale_date).sum(:total_sale) }
end

请忽略该示例中任何似乎有问题的地方,因为它只是报告的一个示例。该范围是否被视为违反可以移动到装饰器模型的 SRP,可能是处理报告的装饰器模型?或者无论是什么情况,范围都不会违反 SRP。

编辑:改写问题和示例以适合我的实际问题。

4

1 回答 1

4

不,范围不是特定于视图的。他们只是查询构建器。如此获取的数据可以通过多种方式消费,例如batch processingapi's...等,这些方式不一定是视图。

于 2013-10-09T08:41:57.543 回答