@eldar_web

Какую связь и как правильно применить в Rails в данном случае?

Есть таблица Users.
Я хочу создать функционал 'начальник-работник', где у одного начальника будет несколько помощников, но у одного помощника может быть и несколько начальников.
А для этого я как понимаю должен создать еще таблицу Assistant, с полями manager_id - ид начальника, и assistant_id - ид помощника.
Но вот как применить связи??? Или есть ли другой вариант и как это делается (самоприсоединительной связи тут не надо) ???
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Cortc
has_and_belongs_to_many или has_many through
Ответ написан
@kkrieger
class CreateUserAndAssistant < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :name
      t.timestamps
    end
 
    create_table :assistants do |t|
      t.string :name
      t.timestamps
    end
 
    create_table :users_assistants, id: false do |t|
      t.belongs_to :user, index: true
      t.belongs_to :assistant, index: true
    end
  end
end

Модель
class User < ActiveRecord::Base
  has_and_belongs_to_many :assistants
end
 
class Assistant < ActiveRecord::Base
  has_and_belongs_to_many :users
end

c504a3d633ae4701b82eaf7eaf7f7d97.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы