我有桌子:
和表
现在,我想建立关联,我可以设置哪些 Library 记录可以 Groups 记录看到(基本上是一个复选框)。因此,如果用户属于某个组,则他不会看到某些库记录。
答案 0 :(得分:0)
开始之前的一个建议 - 不要将Group
用作ActiveRecord类名,因为它将覆盖已按惯例使用该术语的某些功能。现在,我假设你正在使用Group。
如果图书馆只能属于一个群组,则需要一个简单的has_many
- belongs_to
关联设置:
class Group < ActiveRecord::Base
has_many :users
has_many :libraries
end
class Library < ActiveRecord::Base
belongs_to :group
end
class User < ActiveRecord::Base
belongs_to :group
has_many :libraries, :through => :group
end
如果图书馆可以属于多个群组,您需要一个联接表(理想情况下是一个联接模型)来设置它:
class Group < ActiveRecord::Base
has_many :users
has_many :group_libraries
has_many :libraries, :through => :group_libraries
end
class GroupLibrary < ActiveRecord::Base
belongs_to :group
belongs_to :library
end
class Library < ActiveRecord::Base
has_many :group_libraries
has_many :groups, :through => :group_libraries
end
class User < ActiveRecord::Base
belongs_to :group
has_many :libraries, :through => :group
end