多态包括ActiveRecord类名问题

时间:2012-02-02 16:41:20

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

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

任何人都有任何建议或想法??

0 个答案:

没有答案