Gmail Calendar Documents Reader Web more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Comparação com campo counter_cache
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  12 messages - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
CamilaLM  
View profile   Translate to Translated (View Original)
 More options Nov 12, 3:59 pm
From: CamilaLM <camil...@gmail.com>
Date: Thu, 12 Nov 2009 12:59:40 -0800 (PST)
Local: Thurs, Nov 12 2009 3:59 pm
Subject: Comparação com campo counter_cache
Boa tarde pessoal,

alguém sabe me informar se existe alguma maneira de comparar um campo
do "tipo" counter_cache?

segue um trecho de código para identificar meu problema:

>> modelo = Modelo.first(:select => "id, emplacamentos_count")

=> #<Modelo id: 149535, emplacamentos_count: 0>
>> modelo.emplacamentos_count == 0
=> false
>> modelo.emplacamentos_count.class

=> NilClass

PS: Desculpem se estou repetindo a discussão mas procurei vagamente
nas passadas e não encontrei nada parecido.


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Maurício Linhares  
View profile   Translate to Translated (View Original)
 More options Nov 12, 4:02 pm
From: Maurício Linhares <linhares.mauri...@gmail.com>
Date: Thu, 12 Nov 2009 18:02:41 -0300
Local: Thurs, Nov 12 2009 4:02 pm
Subject: Re: [rails-br] Comparação com campo counter_cache
Faça só:

modelo = Modelo.first
modelo.emplacamentos_count == 0
modelo.emplacamentos_count.class

E deve funcionar. Não coloque o :select.

-
Maurício Linhares
http://codeshooter.wordpress.com/ | http://twitter.com/mauriciojr

2009/11/12 CamilaLM <camil...@gmail.com>:


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
G. Sobrinho  
View profile   Translate to Translated (View Original)
 More options Nov 12, 4:03 pm
From: "G. Sobrinho" <gabriel.sobri...@gmail.com>
Date: Thu, 12 Nov 2009 19:03:40 -0200
Local: Thurs, Nov 12 2009 4:03 pm
Subject: Re: [rails-br] Comparação com campo counter_cache

Você pode definir no seu banco que o valor default é 0 mas também pode olhar
com o .empty?

2009/11/12 CamilaLM <camil...@gmail.com>

--
Cordialmente,

Gabriel Sobrinho
Diretor de desenvolvimento

Hite - Comunicação Digital e Mídia Interativa
http://www.hite.com.br/

+55 31 8775 8378


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rodrigo Pinto  
View profile   Translate to Translated (View Original)
 More options Nov 12, 7:42 pm
From: Rodrigo Pinto <rodrigo...@gmail.com>
Date: Thu, 12 Nov 2009 22:42:47 -0200
Local: Thurs, Nov 12 2009 7:42 pm
Subject: Re: [rails-br] Comparação com campo counter_cache

2009/11/12 CamilaLM <camil...@gmail.com>

> Boa tarde pessoal,

> alguém sabe me informar se existe alguma maneira de comparar um campo
> do "tipo" counter_cache?

> segue um trecho de código para identificar meu problema:

> >> modelo = Modelo.first(:select => "id, emplacamentos_count")
> => #<Modelo id: 149535, emplacamentos_count: 0>
> >> modelo.emplacamentos_count == 0
> => false
> >> modelo.emplacamentos_count.class
> => NilClass

Utilize o próprio relacionamentos que ele ja utilizara a coluna de counter
cache:
i.e.:

modelo = Modelo.first
modelo.emplacamentos.size == 0

funcionará.

nesse caso ele já estará fazendo uso da coluna de counter cache.

> PS: Desculpem se estou repetindo a discussão mas procurei vagamente
> nas passadas e não encontrei nada parecido.

Abraços.

--
Rodrigo Pinto
"Usar software livre é igual a usar uma cirola. Me deixa com a mesma
sensação de liberdade."


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Camila Lombardi Michelini  
View profile   Translate to Translated (View Original)
 More options Nov 12, 8:13 pm
From: Camila Lombardi Michelini <camil...@gmail.com>
Date: Thu, 12 Nov 2009 22:13:57 -0300
Local: Thurs, Nov 12 2009 8:13 pm
Subject: Re: [rails-br] Re: Comparação com campo counter_cache

Boa noite pessoal,

obrigada pelas opções.

@Mauricio eu originalmente tinha feito o find sem :select e o comportamento
é igual, fiz com :select apenas para não poluir com informações
desnecessárias e ficar mais claro na hora de explicar minha dúvida.

@Sobrinho o default desse campo já está como 0, eu gostaria de fazer a
comparação pq em algum momento vou ter que fazer um decrement_counter mas
não quero que o valor fique negativo. .empty? não sei se vai funcionar pq
ele retorna um NilClass, e não quero utilizar do relacionamento para contar
registros.

@Rodrigo o counter_cache veio como opção para evitar a consulta pq a tabela
emplacamentos tem milhões de registros. Incrementar e decremetar o contador
fica mais simples que consultar na tabela.


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rodrigo Pinto  
View profile   Translate to Translated (View Original)
 More options Nov 12, 8:30 pm
From: Rodrigo Pinto <rodrigo...@gmail.com>
Date: Thu, 12 Nov 2009 23:30:23 -0200
Local: Thurs, Nov 12 2009 8:30 pm
Subject: Re: [rails-br] Re: Comparação com campo counter_cache

2009/11/12 Camila Lombardi Michelini <camil...@gmail.com>

Eu sei disso, o que quero dizer que quando vc não possui counter cache o
rails fará assim:

 select count(*) bla bla bla

e quando vc possui a coluna de counter cache o rails não fará select e sim
usar o valor da coluna (counter_column) .

por isso eu disse para fazer modelo.emplacamentos.size


Abraços.

--
Rodrigo Pinto
"Usar software livre é igual a usar uma cirola. Me deixa com a mesma
sensação de liberdade."


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Camila Lombardi Michelini  
View profile   Translate to Translated (View Original)
 More options Nov 12, 8:37 pm
From: Camila Lombardi Michelini <camil...@gmail.com>
Date: Thu, 12 Nov 2009 22:37:10 -0300
Local: Thurs, Nov 12 2009 8:37 pm
Subject: Re: [rails-br] Re: Comparação com campo counter_cache

@Rodrigo exatamente, o counter_cache não fará uma consulta, pois é um
atributo do próprio objeto. Mas modelo.emplacamentos.size qus vc sugestionou
não irá disparar uma query através do relacionamento? Isso que estou
tentando evitar.


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rodrigo Pinto  
View profile   Translate to Translated (View Original)
 More options Nov 12, 8:41 pm
From: Rodrigo Pinto <rodrigo...@gmail.com>
Date: Thu, 12 Nov 2009 23:41:52 -0200
Local: Thurs, Nov 12 2009 8:41 pm
Subject: Re: [rails-br] Re: Comparação com campo counter_cache

2009/11/12 Camila Lombardi Michelini <camil...@gmail.com>

> @Rodrigo exatamente, o counter_cache não fará uma consulta, pois é um
> atributo do próprio objeto. Mas modelo.emplacamentos.size qus vc sugestionou
> não irá disparar uma query através do relacionamento? Isso que estou
> tentando evitar.

Não se vc tiver implementado o counter_cache... .
O COUNTER_CACHE serve exatamente para não disparar toda hora a consulta o
RAILS faz a mágica...

Vc já tentou ? olho no console para ver se ele continua disparando o sql ?

não digo 100% mas acho que estou 99% quase de certeza em relação a isto
implementei dois desse essa semana para ganhar performance..

se vc der uma olhada nos docs e procurar counter-cache no railscast verá ..

Abraços


--
Rodrigo Pinto
"Usar software livre é igual a usar uma cirola. Me deixa com a mesma
sensação de liberdade."

    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Camila Lombardi Michelini  
View profile   Translate to Translated (View Original)
 More options Nov 12, 8:49 pm
From: Camila Lombardi Michelini <camil...@gmail.com>
Date: Thu, 12 Nov 2009 22:49:23 -0300
Local: Thurs, Nov 12 2009 8:49 pm
Subject: Re: [rails-br] Re: Comparação com campo counter_cache

@Rodrigo certo, vou tentar sua sugestão amanhã e já estou buscando
informações sobre o uso do counter_cache, na verdade essa é a primeira vez
que uso counter_cache, por isso vou verificar se alguma coisa não está mal
definida. E por isso perguntei quanto ao disparo da query amanhã terei a
resposta.

Mas a dúvida inicial ainda é como comparar o valor de um "atributo"
counter_cache se ele retorna um NilClass? Será que é proposital esse
retorno, ou é algum erro de má configuração?


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Maurício Linhares  
View profile   Translate to Translated (View Original)
 More options Nov 12, 8:50 pm
From: Maurício Linhares <linhares.mauri...@gmail.com>
Date: Thu, 12 Nov 2009 22:50:50 -0300
Local: Thurs, Nov 12 2009 8:50 pm
Subject: Re: [rails-br] Re: Comparação com campo counter_cache
Será que você não esqueceu de definir o default da coluna pra zero?

Se você não define o default pra zero ele fica como sendo NULL no banco.

-
Maurício Linhares
http://codeshooter.wordpress.com/ | http://twitter.com/mauriciojr

2009/11/12 Camila Lombardi Michelini <camil...@gmail.com>:


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Rodrigo Pinto  
View profile   Translate to Translated (View Original)
 More options Nov 12, 8:52 pm
From: Rodrigo Pinto <rodrigo...@gmail.com>
Date: Thu, 12 Nov 2009 23:52:46 -0200
Local: Thurs, Nov 12 2009 8:52 pm
Subject: Re: [rails-br] Re: Comparação com campo counter_cache

O que qualquer coisa poste na lista amanhã, mas de uma olhada na sugestão do
Maurício Linhares, pois acho que pode ter alguma coisa haver.

Abraços.

2009/11/12 Camila Lombardi Michelini <camil...@gmail.com>

> @Rodrigo certo, vou tentar sua sugestão amanhã e já estou buscando
> informações sobre o uso do counter_cache, na verdade essa é a primeira vez
> que uso counter_cache, por isso vou verificar se alguma coisa não está mal
> definida. E por isso perguntei quanto ao disparo da query amanhã terei a
> resposta.

> Mas a dúvida inicial ainda é como comparar o valor de um "atributo"
> counter_cache se ele retorna um NilClass? Será que é proposital esse
> retorno, ou é algum erro de má configuração?

--
Rodrigo Pinto
"Usar software livre é igual a usar uma cirola. Me deixa com a mesma
sensação de liberdade."

    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Camila Lombardi Michelini  
View profile   Translate to Translated (View Original)
 More options Nov 13, 6:13 am
From: Camila Lombardi Michelini <camil...@gmail.com>
Date: Fri, 13 Nov 2009 08:13:01 -0300
Local: Fri, Nov 13 2009 6:13 am
Subject: Re: [rails-br] Re: Comparação com campo counter_cache

@Rodrigo acabei de testar a sua sugestão (modelo.emplacamentos.size) e
realmente não dispara uma query e retorna o valor de emplacamentos_count,
resolvendo meu problema.

Obrigada!! :D


    Reply    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google