我已经花了好几周的时间。 我有两个模型:用户和类 用户模型可以有许多类 和类可以有很多用户
这是我的班级模特:
class Class < ActiveRecord::Base
has_many :users
belongs_to :users
end
用户模型
class User < ActiveRecord::Base
has_many :discipleship_classes
end
我无法弄清楚如何在用户控制器中配置#show方法以显示多个类,反之亦然 - &gt;在查看类时显示多个用户。
任何帮助都将不胜感激。
答案 0 :(得分:1)
您所拥有的是一种标准的has_many/belongs_to
关系:
因此,您的模型应该如此构建:
class DisclipleClass < ActiveRecord::Base
#columns id | user_id | etc | etc | created_at | updated_at
belongs_to :user
end
class User < ActiveRecord::Base
has_many :disciple_classes
end
几个重要的注释:
has_many :classes
,IE必须与belongs_to :class
匹配(除非你做了很多配置) belongs_to
关联时,您需要保持关联的单数。你把它写成复数belongs_to :users
和has_many :users
的使用根本无法识别。<强> has_and_belongs_to_many 强>
现在,如果您想建立many-to-many
关系,请使用has_and_belongs_to_many
:
这将使您能够使用以下内容:
#app/models/user.rb
class User < ActiveRecord::Base
has_and_belongs_to_many :disciple_classes
end
#app/models/disciple_class.rb
class DiscipleClass < ActiveRecord::Base
has_and_belongs_to_many :users
end
这将允许您创建join table,如下所示:
#disciples_classes_users
disciple_class_id | user_id
这将允许您致电:
@user.disciple_classes
@disciple_class.users
答案 1 :(得分:-1)
show
的{{1}}视图,
@user