Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails-HasManyThroughAssociationNotFound复数错误有很多_Ruby On Rails_Ruby - Fatal编程技术网

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