Bon, je me mets en mode Think Outside The Box.
Déjà pour quelle raison tu développes avec un SGBD différent entre
dev, staging et prod. C'est le meilleur moyen pour avoir des problèmes
de dernière minute de merde comme celui-ci.
OK, on peut vite fait prototyper avec SQLite mais très rapidement on
switche sur le même SGBD entre les différents environnements.
Et puis sinon +1 pour le commentaire de Michel : tu changes ton code
pour t’accommoder du fait que t'as des valeurs NULL sur une colonne où
tu fais un ORDER, généralement on fait plutôt l'inverse...

2011/6/14 Michel Belleville <[email protected]>:
> Aha. Ben, si tu veux rester agnostique de la bdd, tu as peut-être intérêt de
> faire en sorte de n'avoir pas de null (une valeur par défaut peut parfois
> faire l'affaire) ; sinon effectivement faire une requête custom PG peut être
> la solution pour toi.
>
> C'est bon à savoir en tout cas.
>
> Michel Belleville
>
>
> 2011/6/14 Laurent Kretz <[email protected]>
>>
>> Michel, merci de ta réponse.
>> Le problème est en fait que PG et SQLite ne gèrent pas les NULLS de la
>> même façon (je me sens un peu bête là :)
>> DONC solution :
>>   en local:
>>     top_users = User.order("login_count DESC").limit(20)
>>   en prod:
>>     top_users = User.order("login_count DESC NULLS LAST").limit(20)
>> Et le tout ressemble à cela:
>>     - if Rails.env == "development"
>>       - sorting = "DESC"
>>     - else
>>       - sorting = "DESC NULLS LAST"
>>     - User.order("login_count #{sorting}").limit(20).each_with_index do
>> |i, index|
>>
>> --
>> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
>> Google Groups.
>> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
>> [email protected]
>> Pour résilier votre abonnement envoyez un e-mail à l'adresse
>> [email protected]
>
> --
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
> [email protected]
> Pour résilier votre abonnement envoyez un e-mail à l'adresse
> [email protected]



-- 
Nicolas Blanco, Web developper

http://www.nicolasblanco.fr
Jabber/GoogleTalk : [email protected]
Twitter : http://twitter.com/slainer68
Github : http://github.com/slainer68
Skype : slainer68

-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à