我在索引操作中遇到了.where语句。
在我的交易控制器中,我想列出current_user银行参与的所有交易。
以下是我的模特:
class User < ActiveRecord::Base
belongs_to :bank
end
class Deal < ActiveRecord::Base
has_many :pools
end
class Pool < ActiveRecord::Base
belongs_to :deal
has_many :participating_banks, dependent: :destroy
has_many :banks, through: :participating_banks
end
class ParticipatingBank < ActiveRecord::Base
belongs_to :pool
belongs_to :bank
end
这是我的交易控制器索引操作:
def index
@deals = Deal.all
end
我没有找到任何方式说:'如果这笔交易至少有一个加入了current_user.bank的池,我只想看一笔交易'。
有什么想法吗?
非常感谢:)
答案 0 :(得分:0)
您应该inner join
并查询已连接的表格以获取ID。您可以通过以下方式在Rails中轻松完成:
def index
@deals = Deal.joins(pools: :banks).where(banks: { id: current_user.bank_id })
end