2

これは単純な構造です:

class Dinner
  belongs_to :user
  field :name

class User
  has_many :dinners
  field :name

今、私が欲しいのは、「ジョン」が主催するすべての夕食を見つけることです。次のようなものを探しています:

Dinner.where('user.name' => 'john')

問題は、参照された属性でクエリを実行する方法が見つからないことです。助言がありますか?

4

1 に答える 1

3

あなたのモデルではうまくいかないと思います。ネストされた属性によるAFAIKクエリは、埋め込みドキュメントに対してのみ機能します。次の 2 つのオプションがあります。

Dinner.where(user: User.find_by(name: 'john'))

または、Dinner にユーザー名を直接保存します。冗長ですが、クエリがより簡単になります。

MongoDB はリレーショナル データベースではなく、結合をサポートしていません。

于 2013-01-31T14:39:11.317 に答える