这正常工作,并返回正确的结果:Rails的LIKE查询不工作
query = params[:query].downcase
users = User.find(:all, :conditions => ['username LIKE ?', "%#{query}%"])
不过,我认为这是不安全的,因为它是开放的SQL注入攻击?
所以我试图做这样的:
users = User.all(:conditions => ["username LIKE ?", query])
甚至
users = User.where("username LIKE ?", query)
但既不是那些2返回任何结果。
这样做的正确方法是什么?
编辑: 这工作:
users = User.where("username LIKE ?", "%#{query}%")
但根据Rails的文档:
你上次编辑的例子没有做红色图像块中的例子。注意他们没有传入数组来清理查询。 –
@ Nighthawk441不知道你的意思..我看不出我在做什么和他们在做什么之间的区别。 – Snowman
@moby不同的是,你在所有的三个例子中都使用了'?',而Rails警告不使用'?'。 –