I've already asked about this on StackOverflow with no luck on answer - 
http://stackoverflow.com/questions/12617237/rails-3-2-force-prepared-statements/12617681

Simplified Case:

Hotel.find(1) - use prepared statement
# SELECT "hotels".* FROM "hotels" WHERE "hotels"."id" = $1 LIMIT 1 [["id", 
1]]

Hotel.where(id: 1) - without prepared statement
# SELECT "hotels".* FROM "hotels" WHERE "hotels"."id" = 1

Hotel.where(Hotel.arel_table[:id].eq(1)) - without prepared statement
# SELECT "hotels".* FROM "hotels" WHERE "hotels"."id" = 1

Hotel.where('id = :id', id: 1) - without prepared statement 
# SELECT "hotels".* FROM "hotels" WHERE (id = 1)

How to force rails to use prepared statements? May be not in all cases, but 
at least with arel_table.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-talk/-/ACgdfArFpZsJ.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to