How to do a Model.order(:name) using a :case_sensitive => false?

this option is available in validation…
is there any equivalent when doing a query or should it be SQL
dependent ( coded in the model ) ?

thanks for feedback

Kad K. wrote in post #1063333:

this option is available in validation…
is there any equivalent when doing a query or should it be SQL
dependent ( coded in the model ) ?

thanks for feedback

orders = Order.order(‘lower(name)’)
Order Load (0.5ms) SELECT “orders”.* FROM “orders” ORDER BY
lower(name)

Ok thanks a lot …
in the meantime , I modified my record design , adding a ds_name
string which is the lower(name) written upon create, so I can order on
it directly…
as it’s for ‘tag’ records, I’ll not have billion of records …
according to your feedback I can create a case-insensitive index on
the column… even better

Robert W. wrote in post #1063410:

orders = Order.order(‘lower(name)’)
Order Load (0.5ms) SELECT “orders”.* FROM “orders” ORDER BY
lower(name)

Keep in mind that the above will force the database to perform a
sequential scan of the table even if the column you’re ordering by is
indexed. Which means that if you have performance issues you may need to
create a case-insensitive index on the column. I’ll leave that as an
exercise for you on how to set that up in whatever database you are
using.