我没有得到关于如何定位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的相关记录的位置。
假设我们有5个拥有ID 1-5的会员,我们有一个用户,其owner_id设置为3,owner_type设置为'Member'。我想只收回一个ID为3的Member对象。我试图在Pundit中运行它,因此我不仅仅是在用户端进行此操作。
感谢您一如既往的帮助!!!
答案 0 :(得分:1)
根据您所说的评论很接近,我说您应该可以这样做:
Member.joins(:user).where('users.id = ?', current_user.id)
但根据我如何阅读您的问题,我会说您想要这样做:
Member.joins(:user).where('users.owner_id = ?', current_user.id)
假设current_user.id
为3。
可能有一种更简洁的方法,但这是我通常使用的语法。如果这些都不对,请尝试在问题中更清楚一点,我们可以从那里开始! :)