我有Ransack(https://github.com/activerecord-hackery/ransack)搜索的Ruby on Rails后端。 我如何实现过滤器。在服务器端进行搜索非常重要 我知道这可以使用查询参数来完成,例如:
@store.find('order', queryParams)
但是通过遵循这条路径,我必须在控制器的queryParams列表中添加所有模型的字段并添加到路由中:
queryParams: {
<field>: {
refreshModel: true
}
....
}
但我不喜欢这个解决方案
答案 0 :(得分:0)
我没有使用过ember,但是我有类似的设置:使用ransack搜索模型,我的请求是通过来自KendoUI客户端的GET / POST ajax请求发送的。
这是我通过GET的典型搜索字符串
http://server.com/products/search.json?q[vendor_number_start]=122191
(在这种情况下,它会返回两个产品" where vendor_number LIKE '122191%' "
)
当我进行POST(来自Chrome开发者控制台)
时,我的请求是如何显示的params: {utf8:✓, authenticity_token:SENSORED,…}
action: "search"
authenticity_token: "SENSORED"
commit: "Details"
controller: "products"
q: {vendor_number_eq:90802491}
vendor_number_eq: "90802491"
utf8: "✓"
以下是来自我的控制器的代码,它接收带有参数的请求并调用搜索
@q = Product.ransack(params[:q])
@products = @q.result().order(params[:order]).page(params[:page]).per(params[:per])
我用kaminari做分页 - 这就是页面&amp;每个parmas来自。