如何在多对多分配

时间:2016-04-24 15:31:12

标签: ruby-on-rails-4 enums attributes many-to-many

我有这样的疑问。例如,我有3个模型:用户,项目,连接:

class User < ActiveRecord::Base
  has_many :connections
  has_many :tasks, :through => :connections
end
class Project < ActiveRecord::Base
  has-many :connections
  has_many :users, :through => :connections
end
class Connection < ActiveRecord::Base
  belongs_to :user
  belongs_to :project
  enum status: [:manager, :developer]
end

问题是:如何访问&#34;状态&#34;模型连接中的属性? 例如,我参加了一个项目:

@project = Projects.last

然后我从这个项目中获得用户,但我也对他们在项目中扮演的角色感兴趣:

@project.users.each do |u|
  u.name
  u.connection.role #Here I get an error `undefined method `connection'`
end

当然,u.role不起作用,因为没有这样的属性&#34;角色&#34;对于用户。 我想显示和编辑属性&#34; Role&#34; 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我用这种方式解决了这个问题: user.connections.find_by_project_id(@ project.id).role%&gt;