STIの同じクラス名、さまざまな名前空間を持つ
-
22-12-2019 - |
質問
私はこのようなものを持っています
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がどのように機能するのかわからないファイル内のファイルのロードパスを定義する必要はありませんが、似ていると思います。もしそうなら、あなたの最後の行も不要です。
所属していません StackOverflow