2017-05-21 18 views
0
Rails 5.0.1 
Ransack Gem 1.8.2 
Will_paginate 3.1.5 

私はRailsアプリケーションで検索結果を改ページしようとしています。両方の検索が正常に動作しますが、私はこのエラーなしで結果の2ページ目に取得することはできません。Rails wiil_paginateとRansackエラー

undefined method `id' for nil:NilClass 

    def show 
    @post = Post.find_by(id: params[:id]) 
    @comments = Comment.where(post_id: @post.id).order("created_at ASC") 
    end 

    def edit 

Application Trace | Framework Trace | Full Trace 
app/controllers/posts_controller.rb:26:in `show' 
Request 

Parameters: 

{"page"=>"2", "id"=>"search"} 

奇妙ですが、エラーが私は偶数ページでない行動にスローされますに。 。それは、「ショー」でだが、インデックス 『とコメントI」のmは』偶数インデックスに示されていない

ここでは、2つのための私のコントローラです:

def show 
    @post = Post.find_by(id: params[:id]) 
    @comments = Comment.where(post_id: @post.id).order("created_at ASC") 
    end 

    def index #this needs to be fixed so that Posts can paginate properly 
    if params[:tag] 
     @search = Post.tagged_with(params[:tag]).search(params[:q]) 
     @posts = @search.result.paginate(page: params[:page], per_page: 15) 
    elsif params[:q].blank? 
     @search = Post.search(params[:q]) 
     @posts = @search.result(distinct: true).includes(:tags).all.paginate(page: params[:page], per_page: 15) 
    else 
     @search = Post.search(params[:q]) 
     @posts = @search.result.includes(:tags).all.paginate(page: params[:page], per_page: 15) 

    end 

私が間違って何をしているのですか?

UPDATE: だから、問題は私のアプリがURL http://localhost:3000/posts/search?page=2のための記事の#ショーを提供しようとすると、それに検索のparamsを渡していることであるように思わ

これは、関連する敗走です:。

resources :posts do 
    collection do 
     match 'search' => 'posts#index', via: [:get, :post], as: :search 
    end 

    resources :comments 
    end 

なぜこれが起こっているか分からない...

答えて

1

..だからそれはちょっと路線の事でしたが、私はまた、代わりにシンプルなものの高度な掻き回すのセットアップを使用していました。それは、ポストの下でコレクションとして検索パラメータを使用していた、それはそこからすべて台無しになった。

関連する問題