Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 混乱之源_Ruby On Rails_Associations_Relationship - Fatal编程技术网

Ruby on rails 混乱之源

Ruby on rails 混乱之源,ruby-on-rails,associations,relationship,Ruby On Rails,Associations,Relationship,我有两个模型:团队和用户 每个用户都可以有团队,每个团队都有许多用户。但我想用team.members调用team.users。我用class_name成功地做到了这一点,但我还需要通过用户访问团队。换句话说,user.team应该将用户所在的团队返回给我。这是我想到的 我的模型如下: class Team < ActiveRecord::Base has_many :members, foreign_key: 'id', class_name: 'User', :inverse_of

我有两个模型:团队和用户

每个用户都可以有团队,每个团队都有许多用户。但我想用team.members调用team.users。我用class_name成功地做到了这一点,但我还需要通过用户访问团队。换句话说,user.team应该将用户所在的团队返回给我。这是我想到的

我的模型如下:

class Team < ActiveRecord::Base
  has_many :members, foreign_key: 'id', class_name: 'User', :inverse_of => :team
end

class User < ActiveRecord::Base
  belongs_to :team, :inverse_of => :user
end
class团队:team
结束
类用户:user
结束

(我在用户模型中也尝试了:inverse\u of=>:members。)

至少当您使用
:inverse\u of=>:members
时,您的
:inverse\u of
是正确的。这里的问题是外键
foreign_key
指定另一个表中键列的名称,因此在您的情况下是在user表中。如果只指定
id
,则将使用用户的id。只需将其保留为默认值,不指定外键,然后指定其
team\u id

class Team < ActiveRecord::Base
  has_many :members, :class_name => 'User', :inverse_of => :team
end

class User < ActiveRecord::Base
  belongs_to :team, :inverse_of => :members
end
class团队'User',:inverse\u of=>:team
结束
类用户:成员相反
结束
尽量不要将ruby 1.8(
:key=>'value'
)中的哈希语法与ruby 1.9(
key:'value'
)中的新语法混合使用