#265 ✓invalid
Diegorv

Incorrect counts in rails 2.3

Reported by Diegorv | March 21st, 2009 @ 10:01 PM

I have this code


def self.completa(estado_id, cidade_id, bairro_id, segmento_id, pagina, limit = 5)
campos_padrao.estado(estado_id).cidade(cidade_id).bairro(bairro_id).segmento(segmento_id).joins.paginate(:per_page => limit, :page => pagina)
  end


named_scope :campos_padrao, lambda { |*args| 
    {
      :select=> (args.first ||
                "anuncios.codcli,
                 anuncios.codseg,
                 anuncios.nomefanta,
                 anuncios.irmao,
                 anuncios.endereco,
                 anuncios.num,
                 anuncios.complemento,
                 anuncios.cep,
                 anuncios.bairro,
                 anuncios.cidade,
                 anuncios.uf,
                 anuncios.fone,
                 anuncios.fax,
                 anuncios.email,
                 anuncios.site,
                 anuncios.descricao,
                 anuncios.fig_anuncio,
                 anuncios.contrato,
                 anuncios.uf_anunciar,
                 anuncios.permalink,
                 cidades.cidade as cidade_nome,
                 estados.nome as estado_nome,
                 segmentos.nome as segmento
                  ") }
    }

named_scope :segmento, lambda { |*args|
    if (args.first != "todos_segmentos")
      { :conditions => ["anuncios.codseg = ?", args.first]  }
    else
      {  }
    end
  }
  
  named_scope :estado,  lambda { |*args| 
    {
      :conditions => ["anuncios.uf = ?", args.first]
    }
  }
  
  named_scope :cidade,  lambda { |*args|
    if (args.first != "todas_cidades")
      { :conditions => ["anuncios.cidade = ?", args.first]  }
    else
      {  }
    end
  }
  
  named_scope :bairro, lambda { |*args|
    if (args.first != "todos_bairros")
      { :conditions => ["anuncios.bairro LIKE ?", "%#{args.first}%"]  }
    else
      {  }
    end
  }

I get this error.

ctiveRecord::StatementInvalid (Mysql::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '

             anuncios.codseg,
             anuncios.nomefanta,
    ' at line 1: SELECT count(anuncios.codcli,
             anuncios.codseg,
             anuncios.nomefanta,
             anuncios.irmao,
             anuncios.endereco,
             anuncios.num,
             anuncios.complemento,
             anuncios.cep,
             anuncios.bairro,
             anuncios.cidade,
             anuncios.uf,
             anuncios.fone,
             anuncios.fax,
             anuncios.email,
             anuncios.site,
             anuncios.descricao,
             anuncios.fig_anuncio,
             anuncios.contrato,
             anuncios.uf_anunciar,
             anuncios.permalink,
             cidades.cidade as cidade_nome,
             estados.nome as estado_nome,
             segmentos.nome as segmento
              ) AS count_anuncios_codcli_anuncios_codseg_anuncios_nomefanta_anuncios_irmao_anuncios_endereco_anuncios_num_anuncios_complemento_anuncios_cep_anuncios_bairro_anuncios_cidade_anuncios_uf_anuncios_fone_anuncios_fax_anuncios_email_anuncios_site_anuncios_descricao FROM `anuncios`   INNER JOIN `estados` ON `estados`.uf = `anuncios`.uf  INNER JOIN `cidades` ON `cidades`.codcid = `anuncios`.cidade  INNER JOIN `segmentos` ON `segmentos`.codseg = `anuncios`.codseg  WHERE (anuncios.uf = 'AC') ):

/Library/Ruby/Gems/1.8/gems/mislav-will_paginate-2.3.8/lib/will_paginate/finder.rb:223:in wp_count' /Library/Ruby/Gems/1.8/gems/mislav-will_paginate-2.3.8/lib/will_paginate/finder.rb:235:incall' /Library/Ruby/Gems/1.8/gems/mislav-will_paginate-2.3.8/lib/will_paginate/finder.rb:235:in wp_count' /Library/Ruby/Gems/1.8/gems/mislav-will_paginate-2.3.8/lib/will_paginate/finder.rb:85:inpaginate' /Library/Ruby/Gems/1.8/gems/mislav-will_paginate-2.3.8/lib/will_paginate/collection.rb:87:in create' /Library/Ruby/Gems/1.8/gems/mislav-will_paginate-2.3.8/lib/will_paginate/finder.rb:76:inpaginate' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope' (DELEGATION):2:in __send__' (__DELEGATION__):2:inwith_scope'

Comments and changes to this ticket

  • Diegorv

    Diegorv March 21st, 2009 @ 10:01 PM

    The same code works right in Rails 2.2

  • Mislav

    Mislav March 21st, 2009 @ 11:34 PM

    • State changed from “new” to “duplicate”

    This is a bug in Rails.

    See previous ticket, #264

  • Mislav

    Mislav March 21st, 2009 @ 11:36 PM

    • State changed from “duplicate” to “invalid”

    Oops, that ticket is only related to this problem. I meant to say that this was already reported on the mailing list.

    In any case, we have to see what Rails will do with this. So far I think they haven't patched it.

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

Everyone's favorite Ruby library for pagination of practically anything!

People watching this ticket

Pages