0

我没有关于如何确定 Active Record 查询范围的概念(那里没有什么新东西)。我只想接收相关记录中存在特定条件的记录。我的例子恰好是多态的,以防万一。我确定在某个地方可以解释这一点,但无论出于何种原因我都没有找到它。

我的模型:

class User < ActiveRecord::Base
  belongs_to :owner, polymorphic: true
end

class Member < ActiveRecord::Base  
  has_one :user, as: :owner
end

我想基本上在 Member 类上为具有特定 owner_id/owner_type 的相关记录运行 where。

假设我们有 5 个 ID 为 1-5 的成员,我们有一个用户的 owner_id 设置为 3,而 owner_type 设置为“成员”。我只想接收一个 ID 为 3 的 Member 对象。我试图在 Pundit 中运行它,因此我不只是从用户端开始。

一如既往地感谢您的帮助!!!

4

1 回答 1

1

根据您所说的接近的评论,我会说您应该能够做到:

Member.joins(:user).where('users.id = ?', current_user.id)

但是,根据我阅读您的问题的方式,我会说您想做:

Member.joins(:user).where('users.owner_id = ?', current_user.id)

假设current_user.id是3。

可能有更简洁的方法可以做到这一点,但这是我通常使用的语法。如果这些不正确,请尝试在您的问题中更清楚一点,我们可以从那里开始!:)

于 2014-08-20T23:51:38.893 回答