【发布时间】:2015-04-10 13:31:45
【问题描述】:
我需要在同一个模型中进行两个关联。地点:
团队 has_many 用户
现在,我想要那个团队 has_one Leader
这个“领导者”将是一个用户
我正在尝试使用has_one throught,但我认为该关联不起作用。
Leader.rb
class Leader < ActiveRecord::Base
belongs_to :user
belongs_to :team
团队.rb
class Team < ActiveRecord::Base
has_one :user, through: :leader
end
用户.rb
class User < ActiveRecord::Base
belongs_to :team
has_one :captain
end
在第 27 行附近出现以下错误:
NoMethodError in TeamsController#create
26 def create
**27 @team = current_user.teams.create(team_params)**
28 @team.save
29 respond_with(@team)
30 current_user.update(team_id: @team.id)
【问题讨论】:
-
一个用户可以加入多个团队,还是只有一个团队?
-
因为
current_user是一个用户,而不是一个领导/队长,你的方法需要current_user.(leader/captain).teams.create(team_params),还要检查你的关联,是领导还是队长
标签: ruby-on-rails ruby-on-rails-4 associations