has_many belongs_to

users

create_table :users do |t|
 t.timestamps
end

groups

create_table :groups do |t|

  t.integer :from_id
  t.integer :to_id
  t.boolean :is_accept, default: false

end

rails 3.2

User

has_many :groups, class_name: 'Group', foreign_key: :from_id, conditions: 'accept=1'
has_many :group_users, through: :groups, source: :follow_user

Group

belongs_to :user, class_name: 'User', foreign_key: :from_id
belongs_to :follow_user, class_name: 'User', foreign_key: :to_id

rails4

User

has_many :groups, -> { where accept: true }, class_name: 'Group', foreign_key: :from_id
has_many :group_users, through: :groups, source: :follow_user

Group

belongs_to :user, class_name: 'User', foreign_key: :from_id
belongs_to :follow_user, class_name: 'User', foreign_key: :to_id

原文地址:https://www.cnblogs.com/qinyan20/p/3759077.html