Доступ к дополнительным данным в таблице m в Rails - PullRequest
0 голосов
/ 17 февраля 2019

В моем приложении есть пользователи и здания, и пользователь может быть частью разных зданий.Я создал User, Buildings и таблицу to m между ними.Некоторые пользователи, принадлежащие к зданию, могут быть администраторами.Поэтому я добавил поле администратора в таблицу n to m, но как мне получить к нему доступ?

create_join_table :buildings, :users do |t|
  # users can belong to many buildings
  t.index [:building_id, :user_id]
  t.index [:user_id, :building_id]
  t.boolean :admin, default: false
end

Я хотел бы получить доступ к полю администратора, чтобы узнать, есть ли у пользователя роль администратора или нормальная.Например, user.building.first.admin?

1 Ответ

0 голосов
/ 17 февраля 2019

Вы не можете получить доступ к таблице соединений, если используете has_and_belongs_to_many.Измените ассоциацию на has_many through и создайте отдельную таблицу users_buildings, после чего вы можете написать в модели пользователя что-то вроде:

def admin?(building_id)
  users_buildings.find_by(building_id: building_id).admin
end

. Вы можете прочитать больше о HABTM и has_many through разница в * 1008.* направляющие

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...