我有类似的东西
class A < ActiveRecord::Base
# Parent class
end
class B < ActiveRecord::Base
# Parent class
end
# models/a/x.rb
class X < A
end
# models/b/x.rb
class X < B
end
# application.rb
config.autoload_paths += Dir[Rails.root.join('app', 'models', '{**}')]
我需要引用X :: B,但仍然会引用A命名空间中的X.无论如何要实现这一点,或者我只需要更改我的X的类名?
由于
答案 0 :(得分:1)
文件结构本身根本无法定义命名空间。你需要相应地写出常量。
# models/a/x.rb
class A::X < A
# models/b/x.rb
class B::X < B
另外,在Rails 3中,没有必要定义/ app中任何文件的加载路径,不确定Rails 4是如何工作的,但我想它应该是类似的。如果是这样,你的最后一行也是不必要的。