Yuck, please tell me this is not really the case.

In my Rails book, they do:

Code:
Order.find(:all, :conditions=>"name='dave'").each do |order|
  puts order.amount
end
Ignoring the fact that they used the slower double-quotes instead of single-quotes, "name='dave'" is stuffed directly into the SQL command, isn't it?

Or, can I use something like hashes to do it more semantically?

Code:
Order.find(:all, :conditions=>{'name':'dave'}).each do |order|
  puts order.amount
end
(Not sure about the exact source, but you get the point...)

If that's really the case, that alone almost makes me want to not use Rails... yucky, yucky, yucky. Why would they do that?!