Ruby 作用域应在控制器或模型中?

Ruby 作用域应在控制器或模型中?,ruby,ruby-on-rails-4,Ruby,Ruby On Rails 4,我对ruby和rails的开发还不熟悉,所以有这个问题。如果我对创建的范围有疑问,请说最新的_记录,它为我提供了客户的最新数据 在这种情况下使用scope的最佳实践是什么。作用域应该在模型中还是在控制器中 我读了一些在线文章,其中谈到了胖模型和瘦控制器,由于作用域是做数据库相关的工作,所以我猜它们应该在模型中 任何建议或想法?范围只能在模型中定义,因此必须在模型上定义 你猜对了。 作用域属于模型,需要使用活动记录类对象。 作用域只不过是一个分为几个部分的activerecord查询,它有助于让您

我对ruby和rails的开发还不熟悉,所以有这个问题。如果我对创建的范围有疑问,请说最新的_记录,它为我提供了客户的最新数据

在这种情况下使用scope的最佳实践是什么。作用域应该在模型中还是在控制器中

我读了一些在线文章,其中谈到了胖模型和瘦控制器,由于作用域是做数据库相关的工作,所以我猜它们应该在模型中


任何建议或想法?

范围只能在模型中定义,因此必须在模型上定义

你猜对了。 作用域属于模型,需要使用活动记录类对象。 作用域只不过是一个分为几个部分的
activerecord
查询,它有助于让您的查询看起来优雅干练。 例如 如果您想让用户收到确认的电子邮件,您可以:

User.where(confirmed: true)
但对于用户模型中的作用域:

scope :confirmed, -> { where(confirmed: true) }
你只需要:

User.confirmed
有关更多详细信息,请参阅此答案