我需要在同一个模型中做两个关联。在哪里:
团队 has_many
用户
现在,我想要那个 团队 has_one
领队
这个“领导者”将是一个用户
我正在尝试使用 has_one throught
但我认为这种关联是行不通的。
领导者.rb
class Leader < ActiveRecord::Base
belongs_to :user
belongs_to :team
团队.rb
class Team < ActiveRecord::Base
has_one :user, through: :leader
end
用户名
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)
请您参考如下方法:
在这种情况下,我认为您需要 2 个模型就足够了
1)。用户模型
class User < ActiveRecord::Base
belongs_to :team
end
2)。团队模式
class Team < ActiveRecord::Base
has_many :users
belongs_to :leader, class_name: 'User', foreign_key: :leader_id
end