在模型中创建命名范围时,是否需要在查询中使用的属性之前调用模型?
实施例
scope :sorted, order('position ASC')
VS
scope :sorted, order('pages.position ASC')
是后者的首选,还是符合惯例?两者都有好处吗?或者只是一个清晰或易读的问题?
答案 0 :(得分:2)
如果范围将与另一个具有同名字段的模型的连接一起使用,将需要声明模型。
说company has_one :contact
,Contact
有position
。然后
Company.sorted.joins(:contact)
会抱怨(在SQL级别上)不清楚哪个position
字段应该用于排序。
否则它是可选的。