我正在开发的项目使用rails 4.0.2和postgress 9.4.7 我是rails的新手,我想知道rails active record是否创建了prepend语句
当我运行此行时:
User.where(id:123)
日志说:
SELECT "users".* FROM "users" WHERE "users"."id" = 123
但是当我跑这条线时:
当我运行此行时:
User.find(123)
日志说:
SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1 [["id", 123]]
为什么会有区别?哪个更安全? 我认为使用where()的第一个版本只是转义数据 而使用find()的第二个版本使用prepend语句是正确的吗? 是否可以使用where来创建像第二个版本的查询?
2个有用的链接
What is the purpose of ActiveRecord::Relation#bind?
http://apidock.com/rails/v4.0.2/ActiveRecord/FinderMethods/find_one