我遇到的问题是,存储在多态关系中的类名是否会因为是否使用完整的命名空间名称而翻转。我想让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
任何人都有任何建议或想法??