私のRails 3.2.11アプリには、関連する属性に基づいて注文しようとしているスコープがあります。私の場合、User モデルと Profile モデルがあります。ユーザーには_one プロファイルがあり、スコープはプロファイル テーブルの属性にあります。範囲は次のとおりです。
で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")
が、これはプロファイル テーブルではなく、ユーザー テーブルの 2 番目の列を呼び出します。このスコープの順序をprofiles.first_nameで正しく設定するにはどうすればよいですか?