我是ruby和rails开发的新手并且考虑到了这个问题。如果我对创建范围有疑虑,请说出latest_records,它为我提供了客户的最新数据
现在在这种情况下使用范围的最佳做法是什么。范围应该在模型中还是在控制器中?
我阅读了一些在线文章,它讨论了胖模型和瘦控制器,因为范围是与数据库相关的工作,所以我猜他们应该在模型中。
有任何建议或想法吗?
答案 0 :(得分:3)
你猜对了。
范围属于模型,需要活动记录类对象才能工作。
范围只是activerecord
查询分为几部分,它有助于查看您的查询优雅和干燥。
例如
如果您想让用户收到确认的电子邮件,您可以:
User.where(confirmed: true)
但是您的用户模型中包含范围:
scope :confirmed, -> { where(confirmed: true) }
你只需:
User.confirmed
有关详细信息,请参阅此答案here
答案 1 :(得分:1)
范围只能在模型中定义,因此必须在模型上。