Rails具有许多直通的额外属性



我有以下关系:

# 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中已经没有了。

好吧,所以我在这里找到了解决方案:

这适用于

has_many :users, -> { select('users.*, teammates.role as teammate_role') }, through: :teammates

最新更新