Полиморфное включение при проблемах с именем класса ActiveRecord - PullRequest
1 голос
/ 02 февраля 2012

У меня проблема с тем, что имя класса, хранящееся в полиморфных отношениях, переворачивается, использует ли оно полное имя в пространстве имен или нет. Я пытаюсь получить is_taggable - это работа с моим текущим приложением (https://github.com/ejlevin1/is_taggable); однако, как показано ниже, оно не всегда подчиняется ActiveRecord::Base.store_full_sti_class = false.

Вот мой пример:

ruby-1.9.2-p180 :001 > i = BOSS::Model::Interest.includes(:taggings).first
 ... 
Tagging Load (40.7ms)  SELECT [taggings].* FROM [taggings] WHERE ([taggings].[taggable_id] = 1 and [taggings].[taggable_type] = 'Interest')
 ...
ruby-1.9.2-p180 :003 > BOSS::Model::Interest.first.taggings
 ...
Tagging Load (43.8ms)  SELECT [taggings].* FROM [taggings] WHERE ([taggings].taggable_id = 1 AND [taggings].taggable_type = N'BOSS::Model::Interest')

Обратите внимание, как различаются типы тегов в зависимости от способа доступа к ассоциации has_many :taggings на моем объекте?

Вы можете увидеть соответствующие классы здесь: https://github.com/ejlevin1/is_taggable/tree/master/lib

Все, что я делаю в своем приложении, это присоединяю это к классу модели, указав:

module BOSS
  module Model
    class Interest < ActiveRecord::Base
      is_taggable :category
    end
  end
end

У кого-нибудь есть какие-либо рекомендации или мысли ??

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