JavaFree.org | RubyOnBr.org

Módulos e "is not missing constant"

Acompanhar Módulos e "is not missing constant" 3 posts, 2 participantes

Avatar Fernando Luizao 330 posts

Pessoal, tenho a seguinte estrutura de classes/modulos:

module Sgi
  module Kernel
    #varios metodos
  end
end

class Sgi::Interface
  extend Sgi::Kernel
end

class Estoque::Deposito < ActiveRecord::Base
end

classe Interface::Teste < Sgi::Interface
  def self.teste
    Estoque::Deposito.first
  end
end

Se eu executar


Interface::Teste.teste

me retorna o erro “Interface is not missing constant Estoque”. Me parece que ele está querendo encapsular a chamada a “Estoque::Deposito” dentro do modulo Interface, ficando Interface::Estoque::Deposito. O estranho é que se eu fizer

Estoque::Deposito
Interface::Teste.teste

Funciona! Será que tem alguma coisa a ver com o carregamento dos models do rails? Ou eu estou fazendo alguma besteira nos módulos?

 
Avatar Eduardo M 108 posts

Fernando,

testei e tive a mesma impressão que você. Dê uma olhada aqui

Acho que o segundo comentário deste link pode ajudar.

Abraz, Eduardo Mucelli.

 
Avatar Fernando Luizao 330 posts

Valeu a ajuda Eduardo, mas mesmo alterando para ficar dentro de um módulo continua dando o mesmo erro. Só acho estranho porque quando eu coloco o nome da classe (ou do namespace) antes de fazer a chamada, funciona sem dar erro nenhum. Ainda suspeito que tenha algo a ver com o carregamento dos models que o Rails faz… alguém tem alguma sugestão?