作者matrixki (New Season)
看板Ruby
标题[问题] Controller 多个filter parameters
时间Sat May 16 00:13:07 2015
这个问题有点空泛,但刚玩active records
想请问大大一般业界在实作时是怎麽去操作这块的
我在做一个搜寻的功能,form 会送出 POST参数到
controller这边应该怎麽搭配逻辑去编写呢?
举例来说 搜寻商品的价格 a 、高度 b、名称 c
if params.has_key?(:a) or params.has_key?(:b) or params.has_key?(:b
)
@shops = Shop.where("price <= ?", @a).where("name LIKE ?", "%#{@a}
").limit(10)
end
如果要去判断三个参数有的有送有的没送,
那势必要有很多 if elsif或是使用case去撰写
才能下query来搭配搜寻
但这样每加一个params来搜寻要改动的地方好多,
规划起来感觉很差,
想问有没有比较好的方式?或者是应该搜寻什麽关键字去找类似的pattern呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.42.129.210
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ruby/M.1431706390.A.95A.html
1F:→ hSATAC: 可以参考一下 ransack 05/16 13:38
2F:推 abc0: where("price <= ? AND "+high+" = ?",price,high)3个照办 05/23 10:15
3F:推 abc0: 说不定可以先组选项Hash, 再删nil的, 再用hash去query 05/23 10:20