Piège a c... ActiveRecord (et solution :-)


#1

Vous voyez pas le problème ?

@events = Event.paginate :page => params[:page], :order => :from

Pourtant :

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
‘from LIMIT 0, 30’ at line 1: SELECT * FROM events ORDER BY from LIMIT
0,
30

Ouch !

Solution :

@events = Event.paginate :page => params[:page], :order => '`from`' 

(N.B. les délimiteurs)

So much for elegant, SQL-free object notation :-/

J’espère qu’il va pas me ressortir ça en plus vicieux, sinon je suis bon
pour un rename_column !

En espérant que ça évite des déboires à d’autres :wink:


#2

Ouais bon en même temps tu cherches un peu les noizes…

++

yk

Le 26 novembre 2008 18:04, philippe lachaise
removed_email_address@domain.invalid a écrit :


#3

Le 26 novembre 2008 18:12, Yann a écrit :

Ouais bon en même temps tu cherches un peu les noizes…

C’est clair.

– Jean-François, “select, c’est pas mal comme nom de colonne”.


Rails Party à Paris dimanche 30 novembre !
Infos: http://rubyfrance.org/evenements/rails-party-2008/
Inscriptions: http://railsparty.ror.bearstech.com

http://twitter.com/underflow_


#4

Essaye aussi de mettre le mot “new” dans un nom de route RESTful.

++

yk

Le 26 novembre 2008 18:15, philippe lachaise
removed_email_address@domain.invalid a écrit :


#5

Ben tu vois, j’avais choisi “from” et “until” pour éviter “begin” et
“end”
tout en restant parlant pour exprimer une durée.

From the frying pan into the fire !


#6

Ouais bon en même temps tu cherches un peu les noizes…

Je m’en aperçois après coup, mais dans le feu de l’action ça m’avait pas
effleuré.

A force de vouloir “oublier” le SQL et bien … on l’oublie :wink:


#7

2008/11/26 philippe :

Ben tu vois, j’avais choisi “from” et “until” pour éviter “begin” et “end”
tout en restant parlant pour exprimer une durée.

J’aime bien les conventions de Rails *_at pour les datetimes
et *_on pour les dates. Donc j’aurais pris beginning_at et
ending_at par exemple.

-- Jean-François.


Rails Party à Paris dimanche 30 novembre !
Infos: http://rubyfrance.org/evenements/rails-party-2008/
Inscriptions: http://railsparty.ror.bearstech.com

http://twitter.com/underflow_


#8

J’aime bien les conventions de Rails *_at pour les datetimes et *_on pour
les dates. Donc j’aurais pris beginning_at et
ending_at par exemple.

That sums it up !

Le rename_column va suivre.

Merci du conseil :slight_smile: