Ruby on rails rails-HasManyThroughAssociationNotFound复数错误有很多
我有以下型号:Ruby on rails rails-HasManyThroughAssociationNotFound复数错误有很多,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有以下型号: User Team UserTeam 有用户,也有团队。每个团队有0个或多个用户,联接表为UserTeams 我想得到所有的团队,每个团队都有自己的用户。最初,我尝试为一个团队,并获得它的用户,就像这样 Team.find('759ccbb7-2965-4558-b254-3e437ca721aa').users 但rails对此抱怨如下: Could not find the association :user_team in model Team 这就是我的团队模型的样
User
Team
UserTeam
有用户,也有团队。每个团队有0个或多个用户,联接表为UserTeams
我想得到所有的团队,每个团队都有自己的用户。最初,我尝试为一个团队,并获得它的用户,就像这样
Team.find('759ccbb7-2965-4558-b254-3e437ca721aa').users
但rails对此抱怨如下:
Could not find the association :user_team in model Team
这就是我的团队模型的样子:
class Team < ActiveRecord::Base
has_many :users, through: :user_team
has_many :user_teams, dependent: :destroy
accepts_nested_attributes_for :user_teams, :reject_if => lambda { |a| a[:user_id] == '0' }
validates :name, presence: true
end
使用单数词,它是有效的,但我读到它必须是复数的
has_many :users, through: :user_team
has_many :user_teams, dependent: :destroy
到
至
部分应使用现有关联
在您的代码中,您通过:user\u team指定了
,但您没有has\u many:user\u team
,这就是rails抱怨的原因。解决方案是将这些放在用户模型中:
has_many :user_teams
has_many :teams, through: :user_teams
我忘了这些。现在它起作用了
has_many :users, through: :user_team
has_many :user_teams, dependent: :destroy
has_many :user_teams, dependent: :destroy
has_many :users, through: :user_teams
has_many :user_teams
has_many :teams, through: :user_teams