8

Users创建Programs. 这些可以被其他人关注/喜欢Users。然而,Program意志总是有一个创造者。

所以我需要一个ProgramsUsers表格来映射喜欢/关注。“创建者”是否也可以作为该表中的一种关系,或者也可以Programbelongs_to单个特定的User

所以本质上:

程序.rb

class Program < ActiveRecord::Base
  has_and_belongs_to_many :users    #Likes/Follows
  belongs_to :user                  #Creator

这是可以接受的还是建模不好?

4

2 回答 2

7

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

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. 哦,顺便说一句,这不是糟糕的建模。

于 2012-12-19T19:51:00.073 回答
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'
于 2012-12-19T19:56:35.057 回答