Tabela de trilhos Heritância/subclasse de Tabela única Condição no pai
-
22-09-2019 - |
Pergunta
Eu tenho uma tabela chamada usuários (class User < ActiveRecord::Base
) e uma subclasse/STI para clientes (class Client < User
).
A "filtragem" do cliente funciona conforme o esperado, em outras palavras client.find (:: all) funciona para encontrar todos os clientes.
No entanto, para os usuários, preciso filtrar o resultado para encontrar apenas usuários que não são clientes (onde o tipo é nulo ou em branco).
Eu tentei o seguinte no meu controlador de índice, mas não importa o que eu coloquei para o tipo que ele retorna todos os usuários, independentemente do tipo.
User.find(:all, :conditions => { :type => nil }, :order => 'name')
Alguma pista sobre como fazer com que essa condição funcione?
Obrigado!
Solução 2
Ok, descobri!
O aplicativo usa um LIB para os métodos do controlador padrão (semelhante ao Resource_Controller) e eu estava substituindo incorretamente o método de índice no controlador do usuário.
Obrigado pela ajuda Achim !!
Outras dicas
Não sei como o atributo 'tipo' está preenchido. Mas se o tipo for uma coluna de banco de dados, você poderá filtrá -lo por uma expressão SQL apropriada:
User.find(:all, :conditions => [ " type=null or type='' "])
Ou você quer dizer a função "classe"? "Tipo" está preguiçoso até onde eu sei. IRB Estados: AVISO: O tipo de objeto#está preguiçoso; Use o objeto#classe