0

次の has_one セットアップがある場合:

class Account
 has_one :user

@account.user.where(:visible => true) のようなことをするにはどうすればよいですか

より具体的には、has_many と同様の方法で has_one 関係の条件を呼び出すにはどうすればよいでしょうか? 私は現在、ばかげていると思われるユーザーのスコープを使用していますか?

def is_visible?
  if self.visible
    return self 
  else
    return false
end
4

1 に答える 1

1

結合を使用して表示可能なユーザー アカウントのリストを取得する必要がありますが、クエリを理解すればそれほど難しくありません。これを試して:

@accounts = Account.joins(:user).where(:users => {:visible => true})

スコープに簡単にカプセル化することもできます。

scope :with_visible_user, joins(:user).where(:users => {:visible => true})

@accounts = Account.with_visible_user
于 2012-06-23T05:27:27.313 に答える