我有3个使用相同数据库的类:
class Enum < AR:Base
self.table_name = 'enums'
end
class Language < AR:Base
self.table_name = 'enums'
default_scope where(category: Category.find_by_name('language'))
end
class Region < AR:Base
self.table_name = 'enums'
default_scope where(category: Category.find_by_name('region'))
end
我正在使用default_scope来保持类级别的3。这大部分工作正常。
案例1
en = Language.create(label: 'English')
en.category.name == 'language' #true
案例2
united_states = Region.create(label: 'US')
united_states.category.name == 'region' #false !!!
当我单独测试它们时,情况1和2工作正常,但是当我背对背地运行它们时,一些电线会越过,并且united_states类别变成“语言”。这两个类如何相互作用。是什么导致了这个?这是activerecord中的错误,还是我在这里做错了什么?
注意:我正在使用activerecord 4.2