質問

私はこのようなものを持っています

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では、レール4がどのように機能するのかわからないファイル内のファイルのロードパスを定義する必要はありませんが、似ていると思います。もしそうなら、あなたの最後の行も不要です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top