0

重複の可能性:
子を持たない親を見つけるRails 3

ネストされたオブジェクトがアタッチされていないすべてのオブジェクトを見つける必要があります。

「アドレス」ネストされたオブジェクトをすべて含むことは知ってUser.all.includes(:address)いますが、反対の方法がわかりません。

スキーマは次のようになります。User.address_id属性はありません。

User
has_one :address

Address
belongs_to :user
user_id: integer
address: string
4

1 に答える 1

1

わかった。前の回答で愚かな間違いをしました。

ここに適切な解決策があります。クエリを実行してアドレスを持つユーザーを検索し、前のクエリの結果を別のクエリに渡すことで、アドレスのないユーザーをフィルター処理できます。

これを行う:

User.find_by_sql("SELECT * FROM users WHERE users.id NOT IN (SELECT users.id FROM users INNER JOIN addresses ON users.id=addresses.user_id)");

ところで、これは良い質問です。なぜそれが反対票を投じられたのだろうか。

于 2012-11-19T09:00:00.110 に答える