在我的Rails 3.2.11應用程序中,我有一個範圍,我正在嘗試通過基於關聯屬性進行排序。在我的情況下,我有一個用戶模型和一個配置文件模型。用戶has_one配置文件,我的作用域位於配置文件表上的屬性上。這裏的範圍:在has_one協會的Rails 3.2.11中的訂單範圍
在User.rb
:
def self.with_default_show
joins(:profile).where("profiles.show_all = true")
end
但是我遇到的麻煩是在試圖對申報順序。例如,運行:
joins(:profile).where("profiles.show_all = true").order("profiles.first_name DESC")
給我一個錯誤:
PG::Error: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
我知道我可以做.order("2")
但在我的用戶表調用第二列,而不是我的配置表。如何正確地將此作用域上的順序設置爲profiles.first_name?
謝謝。如果我將範圍更改爲「在DESC處或附近出現語法錯誤」SELECT DISTINCT配置文件。*,profiles.first_name DESC FROM'。 – tvalent2
從select中刪除'desc',因爲它將按' ..看到我上面的更新後的帖子。 –