Короткие: у меня есть атрибут внешнего ключа и вы хотите знать, что такое класс (или ссылочная таблица) этого поля внешнего ключа.
Context:
для двух таблиц: users(id, [other fields]) и issues(id, user_id, assigned_to, [other fields])
Вот моя активная запись о проблеме (нерелевантные части извлекаются)
class User < ActiveRecord::Base
...
end
class Issue < ActiveRecord::Base
belongs_to :user
belongs_to :assigned_user, :foreign_key => 'assigned_to', :class_name => 'User'
...
end
Я хочу сделать доступную для чтения запись изменений. например при изменении назначенного пользователя я хочу получить такое сообщение: Assigned to is changed from Otto to Zoltan. Функция ActiveRecord имеет функцию changes, которая является хорошей отправной точкой, но она дает мне только ссылочные идентификаторы. Чтобы перевести на имена, мне нужно прочитать пользователя по id.
Для ассоциации :user это довольно просто, потому что я должен следовать только соглашениям. Но как получить такую же информацию для атрибута assigned_to (я хочу сделать общее решение)? Можно ли выяснить, есть ли у нас ассоциация для данного атрибута? Можем ли мы извлечь класс этой ассоциации?