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
なぜこれが起こっているか分からない...