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!

Foi útil?

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

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