Ruby on rails 混乱之源
我有两个模型:团队和用户 每个用户都可以有团队,每个团队都有许多用户。但我想用team.members调用team.users。我用class_name成功地做到了这一点,但我还需要通过用户访问团队。换句话说,user.team应该将用户所在的团队返回给我。这是我想到的 我的模型如下: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
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'
)中的新语法混合使用