2017-11-11 10 views
0

私は何か基本的なものが欠けていると確信していますが、私は、名前属性を持つCompanyモデルのbelongs_toというモデルユーザーを持っています。Railsのアソシエーション属性値でソートする方法

どのようにすべてのユーザーを会社名で並べ替えることができますか?

@users = User.all #sort this collection in order of the associated company's name 

class User < ActiveRecord::Base 
    belongs_to :company 
end 

class Company < ActiveRecord::Base 
end 

    create_table "users", force: :cascade do |t| 
    t.string "name" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    t.integer "company_id" 
    end 

    create_table "companies", force: :cascade do |t| 
    t.string "name" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
    end 

答えて

0

です。私はASCがデフォルトだと思いますが、必要に応じて追加することができます。また、モデルのCompanyテーブル名を指定するか、テーブル名を 'companies'に変更する必要があります。

+0

これはうまくいきましたが、私はそれを... User.includes(:company).order( 'companies.name')にしなければなりませんでした。テーブル名には複数形があります。元の投稿を更新してこれを修正しました。 'companies.name'はSQLのテーブルとカラムを参照していて、レールの関連付けの名前が少ないので必要ですか? –

+1

はいテーブル名はそこにある必要があります。そのため、私はあなたがスキーマに表示していたものと一致するように 'company.name'を持っていました。 – dstull

関連する問題