我有以下关系:
# Project
has_many :teammates
has_many :users, through: :teammates
# User
has_many :teammates
has_many :projects, through: :teammates
# Teammate
belongs_to :user
belongs_to :project
队友表有一个“角色”字段,告诉用户该项目中的角色。 这就是我如何使用角色在DB中保存队友:
project.teammates.create(:user => current_user, :role => 10)
所以这是有效的。现在我要做的是从特定项目中获取所有用户,所有用户都有一个角色字段,告诉他们在该项目中有什么角色。
这可能吗?我读了一些帖子,谈到将attribute_accessible添加到用户模型中,但不再在rails 4中了。
答案 0 :(得分:0)
好的,所以我找到了解决方案here:
这有效
has_many :users, -> { select('users.*, teammates.role as teammate_role') }, through: :teammates