Activerecord default_scope在模型

时间:2016-04-02 02:01:01

标签: ruby-on-rails activerecord

我有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

0 个答案:

没有答案