Belongs_to和has_and_belongs_to_many到Rails中的同一个表

dew*_*yze 8 activerecord ruby-on-rails

Users创造Programs.这些可以被其他人跟随/喜欢Users.然而,Program遗嘱总是有一个创造者.

所以我需要一张ProgramsUsers表来映射/喜欢.请问"创造者",也去作为一种关系,在该表中,或可能一个Programbelongs_to一个特定的User

所以本质上:

Program.rb

class Program < ActiveRecord::Base
  has_and_belongs_to_many :users    #Likes/Follows
  belongs_to :user                  #Creator
Run Code Online (Sandbox Code Playgroud)

这是可以接受的还是这种糟糕的建模?

Mur*_*foX 7

我相信你可以做这样的事情

class Program < ActiveRecord::Base
  has_and_belongs_to_many :users    #Likes/Follows
  belongs_to :creator, ::class_name => 'User', :foreign_key => 'creator_id'
Run Code Online (Sandbox Code Playgroud)

这样,您可以creator_idprograms表上放置一个字段,并使用它来访问它@program.creator.哦,顺便说一句,这不是糟糕的建模.