我试图实现来自数据库的记录的分页列表,其中给出了在URL中给出的条件。Rails will_paginate使用:条件,只有当参数存在于URL
例如:如果URL是这样的:?name=Michael&age=20
应该显示所有与迈克尔斯20岁等
但如果URL中含有&age=20
,它应该显示所有的人有20岁,而忽略了“名”参数。
我分页1页2所列出,都来自同一个模型,只有位置而变化,所以我有我的控制器定义2个paginations:
@boss = Person.paginate(:page => params[:boss_page], :conditions => "position = 1")
@manager = Person.paginate(:page => params[:manager_page], :conditons => "position = 2")
如何现在添加从条件只有在参数存在的情况下URL?
我是想这样说:
conditions = []
conditions << [ "age = ?", params[:age] ] if params[:age].present?
,但是当我在URL传递PARAM它给我的错误:
undefined method `%' for ["age = ? ", "1"]:Array
接下来的问题是如何从这个数组状态合并条件“位置= 1“?
更新:我知道如何做分页与条件,我只是没有得到什么是最好的想法来指定基于GET参数的条件。 我总是可以做这样的:
if params[:age].present?
@boss = version with age conditons
else if params[:age].present? and params[:name].present?
@boss = version with age and name
else if params[:name].preset?
@boss = version with name only
但我相信,在轨道是可以做到的简单。
对于这个问题[1] [1] [此链接帮助你。]:http://stackoverflow.com/questions/10867977/how-to-use-pagination-in-rails- 3-2-3 – 2012-07-30 09:17:46
我更新了问题 – 2012-07-30 09:40:12