Можно ли установить связь между моделью ActiveRecord и моделью плагина?
Я использую ruby на rails 2.3.8, и я установил плагин act_as_taggable_on для пометки объявлений, и все было хорошо, пока я не обнаружил, что у меня не было простого и удобного способа пометить все объявления с определенным идентификатором (единственный метод Я нашел Tag.tagged_with(tag_name)).
Итак, я просто хотел связать модель Tag плагина с созданной мной моделью Tagging (ActiveRecord), представляющей таблицу тегов, которая включена в плагин.
Возможно ли это сделать?
1 ответ
Это должно быть возможно, если они обе являются моделями ActiveRecord.
Чтобы определить отношения в модели плагина, вам нужно выполнить метапрограммирование где-нибудь в библиотеке. Вы можете вставить его в конец файла environment.rb, чтобы поэкспериментировать.
ModelName.class_eval do
has_many :announcements
end
Это, в частности, может или не может работать, но это основная идея.
Если метапрограммирование оказывается слишком сложным, вы всегда можете сделать это (делая предположения о схеме здесь, я не использовал AAT в течение нескольких лет):
Taggings.find_by_tag_id_and_user_id (@ tag.id, @ user.id,: include =>: user).map {| t | t.user)}