我有一个名为Toys的表,其中包含列MAX_HEAP_SIZE="8G"
我正在尝试对表进行查询,如下所示:
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]
,它将返回由https://myapp.com/api/toys/search?store_id=8&query="robot"
表示的具有store_id
或{{1}的商店的所有玩具} LIKE name
。每次返回空JSON。不确定为什么?任何帮助或指导将不胜感激。
答案 0 :(得分:1)
使用Arel风格:
companies = Company.arel_table
toys = @company.where(store_id: params[:store_id]).where(companies[:name].matches(params[:query]).or(companies[:description].matches(params[:query])))
甚至:
companies = Company.arel_table
search_query = companies[:name].matches(params[:query]).or(companies[:description].matches(params[:query]))
toys = @company.where(store_id: params[:store_id]).where(search_query)
答案 1 :(得分:1)
由于您有一张名为Toys'的桌子,您可以尝试这样的事情:
@toys = Toy.where("company_id = ? AND store_id = ? AND (name LIKE ? OR description LIKE ?)", params[:company_id], params[:store_id], params[:query], params[:query]
我希望它能帮到你!
答案 2 :(得分:0)
请参阅@PardeepDhingra原始问题中的第一条评论
toys = @company.toys.where("store_id = ? AND (name LIKE ? OR description LIKE ?)", params[:store_id], "%#{params[:query]}%", "%#{params[:query]}%"