我有这样的东西

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的类名?

感谢

有帮助吗?

解决方案

文件结构本身无法定义名称空间。你需要相应地编写常量。

# models/a/x.rb
class A::X < A

# models/b/x.rb
class B::X < B
. 此外,在Rails 3中,不需要定义内部/应用程序内的任何文件的加载路径,不确定Rails 4如何工作,但我猜它应该是类似的。如果是这样,你的最后一行也是不必要的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top