我有以下结构
class Project
has_many :teammates
has_many :users, :through => :teammates
end
class Teammate
belongs_to :user
belongs_to :project
end
class User
has_many :teammates
has_many :users, :through => :teammates
end
我为加入的模型添加了一个额外的字段:teammates - > 待:布尔
我想要做的是显示一个项目,其中包括具有布尔值的用户,以了解每个用户是否仍处于未决状态。
编辑:查询如下所示:
Project.includes(:users).find(params[:id])
我希望能够做到这样的事情:
class Project
has_many :teammates
# I tried this
has_many :users, :through => :teammates, :select => 'users.*, teammates.*'
# ERROR: Unknown key: :select
# And this
has_many :users, -> { select("users.*, teammates.pending") }, through: :teammates
# ERROR: missing FROM-clause entry for table "teammates"
end
答案 0 :(得分:0)
我会做这样的事情:
@project = Project.find(params[:id])
@project.teammates.each do |teammate|
# an example provided to show that you have access to `pending` field as well as all users fields:
teammate.pending # pending field
teammate.user # all user fields
end