【发布时间】:2014-10-17 11:07:58
【问题描述】:
我的应用程序的结构如下: c
lass Project < ActiveRecord::Base
has_and_belongs_to_many :team_members
has_one :legal_contract
has_many :documents
end
class ProjectsTeamMember < ActiveRecord::Base
belongs_to :project
belongs_to :team_member
end
class LegalContract < ActiveRecord::Base
belongs_to :project
end
class TeamMember < ActiveRecord::Base
has_many :projects_team_members
has_many :projects, through: :projects_team_members
has_and_belongs_to_many :projects
end
我正在尝试查找与 legal_contract 关联且具有数组中的一个 ID 的所有 team_members。尝试包含方法:
team_members = TeamMember.includes( {projects_team_members: [ { project: :legal_contract} ] } )
我现在想知道如何缩小范围以仅提取那些 tmember 而不是全部。我试过了
arry= [1,3,5]
team_members = TeamMember.includes( {projects_team_members: [ { project: :legal_contract} ] }).where('legal_contract.id IN', arry)
但出现错误
ActiveRecord::StatementInvalid: PG::SyntaxError: ERROR: zero-length delimited identifier at or near """"
LINE 1: ...s"."updated_at" AS t0_r6, "projects_team_members"."" AS t1_r...
有人知道吗?谢谢
**更新** 感谢卡林根
TeamMember.joins(:projects => :legal_contract).where(legal_contracts: { id: [1,3,5] })
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 activerecord include