2011-10-24 80 views
1

在模型中創建命名範圍時,是否需要在查詢中使用的屬性之前調用模型?創建命名範圍:是否需要在屬性之前聲明該模型

scope :sorted, order('position ASC') 

VS

scope :sorted, order('pages.position ASC') 

是後者優選的,或者與約定內嵌?兩者都有好處嗎?還是隻是一個清晰或易讀的問題?

回答

2

需要聲明模型,如果範圍將與另一個具有相同名稱的字段的模型一起使用。

說的是company has_one :contact,而Contact的有position。然後

Company.sorted.joins(:contact) 

會抱怨(在SQL級),它目前還不清楚該position領域應該用於排序。

否則它是可選的。

相關問題