找不到RoR 4控制器

时间:2016-05-12 07:26:25

标签: ruby-on-rails

我有一个RoR 4应用程序,我用它作为后端API。我在搜索用户时尝试实现分页,所以我在控制器中定义了以下方法:

  def search
    params['page'] = 1 if params['page'].nil?
    pageNumber = params['page']

    params['size'] = 10 if params['size'].nil?
    users = User.filter(filtering_params)
    number_of_users = users.count
    response = {
      number_of_users: number_of_users,
      users: users.paginate(page: pageNumber, size: params['size'])
    }
    respond_with response
  end


  def filtering_params
    params.slice(:_s)
  end

问题是我的应用程序总是返回1作为pageNumber,即使我添加一个参数?例如page = 2。你们知道可能出现什么问题吗?

1 个答案:

答案 0 :(得分:0)

params['page'] = 1 if params['page'].nil?
pageNumber = params['page']

如果params['page']为零,则pageNumberInteger,其值为1

如果params['page']为“2”,则pageNumberString,其值为“2”

根据您在用户模型的paginate方法中对参数执行的操作,可能是您遇到此问题的原因。

也许你应该尝试将它转发给Integer,然后再发送给paginate:

pageNumber = params['page'].to_i || 1