Можно ли установить связь между моделью 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)}

Другие вопросы по тегам