Pergunta

Eu tenho um aplicativo Rails que usa STI para lidar com diferentes tipos de usuários, tais como:

class Admin < User
  ...
end

Eu quero usar memcached, mas eu continuo recebendo o erro temido "classe desconhecida / módulo". Eu tentei pré-carregamento todas dos meus modelos ActiveRecord sem sucesso. O primeiro pedido funciona como normal, mas a primeira puxada de erros memcached fora. Eu segui estas instruções sem sucesso também.

está usando memcached possível com herança única tabela?

Foi útil?

Solução

Eu acho que isso é devido a preguiçoso carregamento das classes. Quando você chamá-lo de memcached a definição de classe não está carregado, e então você começa o erro.

O uso solução I é:

Admin #lazily load the class definition

# do whatever that has cached Admins

Outras dicas

O problema era que o método de login_from_session restful_authentication estava a ser carregado antes do before_filter acima mencionado foi executado. Pré-carregar as classes de usuário STI no topo deste método funcionou.

apenas um rápido comentário, eu li que usando require_dependency 'admin' é o preferido agora, não sei porquê

require_dependency 'region'

Além disso, descobri que isso é desnecessário se você adicionar

config.cache_classes = true

para o seu production.rb (ou development.rb para teste), este parece pegar todos os modelos de cache

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top