Users
创建Programs
。其他Users
可以跟随/喜欢这些。但是,Program
总是会有一个创建者。
所以我需要一个ProgramsUsers
表来映射like / follow。 “创作者”也会在该表格中作为一种关系,还是Program
还belongs_to
一个特定的User
?
所以实质上:
Program.rb
class Program < ActiveRecord::Base
has_and_belongs_to_many :users #Likes/Follows
belongs_to :user #Creator
这是可接受的还是这种糟糕的建模?
答案 0 :(得分:8)
我相信你可以做这样的事情
class Program < ActiveRecord::Base
has_and_belongs_to_many :users #Likes/Follows
belongs_to :creator, ::class_name => 'User', :foreign_key => 'creator_id'
这样,您可以在creator_id
表格中添加programs
字段,然后使用@program.creator
访问该字段。哦,顺便说一句,这不是很糟糕的建模。
答案 1 :(得分:3)
这样的事情:
class Program < ActiveRecord::Base
has_many :followings
has_many :followers, :class_name => 'User', :through => :followings
belongs_to :creator, :class_name => 'User', :foreign_key => 'creator_id'