2016-05-12 9 views
2

私はバックエンドAPIとして使用するRoR 4アプリケーションを持っています。 ?RoR 4コントローラでパラメータが見つかりません

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を返すことでページ= 2:ユーザーのための検索は、ので、私は私のコントローラで次のメソッドを定義したとき、私はページネーションを実装しようとしています例えば。あなたは何が間違っているか考えていますか?

+0

params.inspect'を上げる '置くことによって' params'を点検します。私はそれが***文字列キー***に起因すると信じています。 – Pavan

+0

ビューコードを含めることはできますか?そして、もし可能であれば、要求のログを? –

+0

RailsはHashのように動作しますが、文字列や記号がキーとして渡されるかどうかに関わらず* HashWithIndifferentAccess'オブジェクトにパラメータを格納するので、文字列キーは重要ではありません。 –

答えて

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

params['page']がゼロである場合に、pageNumberparams['page']が '2' である場合、pageNumberは、その値に応じて異なり '2'

あるStringあろう1

あるIntegerあろうユーザーモデルのpaginateメソッドで引数を使用すると、この問題が発生する可能性があります。

たぶん、あなたはそれがページ付けするために送信する前に整数にキャストしてみてください:

pageNumber = params['page'].to_i || 1 
関連する問題