Mesmo nome da classe no IST, com diferentes espaços de nomes
-
22-12-2019 - |
Pergunta
Eu tenho uma coisa como esta
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', '{**}')]
Eu preciso de referência X: a:B, mas ainda o X de Um espaço de nomes fica referenciado.Existe uma maneira para conseguir isso, ou eu só preciso alterar o meu X é o nome da classe?
Obrigado
Solução
Estrutura do arquivo em si não pode definir o espaço de nomes em tudo.Você precisa escrever a constante de acordo.
# models/a/x.rb
class A::X < A
# models/b/x.rb
class B::X < B
Também, no Rails 3, não há necessidade de se definir o carregamento caminho de todos os arquivos dentro de /app, não tem certeza de como o Rails 4 funciona, mas eu acho que ele deve ser semelhante.Se para a sua última linha é desnecessário bem.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow