【发布时间】:2016-04-17 05:00:53
【问题描述】:
我有一个名为 Toys 的表,其中包含 toy_id, company_id, store_id, name and description 列
我正在尝试对表进行如下查询:
toys = @company.toys.where("store_id = ? AND (name LIKE ? OR description LIKE ?)", params[:store_id], params[:query], params[:query]
这个想法是,如果用户转到以下 url:https://myapp.com/api/toys/search?store_id=8&query="robot",它将返回由 store_id 表示的商店的所有玩具,这些玩具具有 name 或 description LIKE robot。每次它返回空 JSON。不完全确定为什么?任何帮助或指导将不胜感激。
【问题讨论】:
-
试试这个
toys = @company.toys.where("store_id = ? AND (name LIKE ? OR description LIKE ?)", params[:store_id], "%#{params[:query]}%", "%#{params[:query]}%"。 -
如果我没记错的话,那很容易受到 SQL 注入的攻击。
-
?将负责消毒 -
@axlj 他正在接收参数查询而不是名称或描述。 myapp.com/api/toys/search?store_id=8&query="robot"
-
如果您查看 url,我希望
:query用于匹配toy.description和toy.name。
标签: mysql ruby-on-rails rails-activerecord grape-api