Задать вопрос
@artem_music

Как получить поле соединительной таблицы?

Есть две модели - Member (участник) и Community (сообщество).
Участники могут состоять в нескольких сообществах. Миграция и данные моделей выглядят следующим образом:
#models/member.rb
class Member < ActiveRecord::Base
	has_and_belongs_to_many :communities
end

#models/community.rb
class Community < ActiveRecord::Base
	has_and_belongs_to_many :members
end

#миграция
create_table :communities_members, id: false do |t|
      t.belongs_to :member, index: true
      t.belongs_to :community, index: true
      
      t.timestamps null: false #это важная строчка
end

Связи работают, без проблем могу получить пользователей группы по запросу @community.members и т.д., но мне также нужно видеть время создания этой связи (когда человек вступил в группу). Для этого я добавил строчку t.timestamps - по идее она автоматически должна добавлять столбцы created_at и updated_at.

Но не понимаю, как получить это значение с помощью интерфейса active record. Подскажете?
Заранее спасибо за ответы.
  • Вопрос задан
  • 194 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
viktorvsk
@viktorvsk
Как раз для таких целей рекомендуется вместо has_and_belongs_to_many использовать has_many through:
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
hummingbird
@hummingbird
@community.communities_members
Либо с помощью .joins
Либо пропишите scope в одной из существующих моделей.
На самом деле способов реализаций вашей идеи полно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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