0

2 つのモデル ドキュメントとカテゴリがあります。

関係は次のとおりです。

  • ドキュメントは 1 つのカテゴリに属します。

  • カテゴリには多くのドキュメントがあります。

すべてのドキュメントと特定のカテゴリのドキュメントをページ分割したいと考えています。これは、routes.rb の kaminari readme で私が行ったことです (まあ、私はまだ Rails の第一人者ではありません)。

   resources :docs do
     get 'page/:page', :action => :index, :on => :collection
   end
   match '/doc/',                   to: 'Docs#index',     :as => :docs

   resources :category_docs do
     get 'page/:page', :action => :category, :on => :collection
   end
   match '/doc/category/:category', to: 'Docs#category',  :as => :docs_category

すべてのドキュメントのページネーションは正常に機能しますが、カテゴリのページネーションにより、ビューのこの行で RoutingError が発生します

   <%= paginate @category_docs, :left => 2, :right => 2 %>

ここにドキュメントコントローラーがあります

   def category
     @title = "Title"
     category = nil
     if params[:category] == "a"
       category = Category.find_by_title( "aa" )
     # code omitted
     elsif params[:category] == "e"
       category = Category.find_by_title( "ff" )
   end

   if category != nil
       @category_docs = category.docs.page( params[ :page ] ).per( 10 )
   else
       @category_docs = Doc.order("updated_at DESC").page( params[ :page ] ).per( 10 )
   end

どこが間違っていますか?will_paginate に切り替える必要がありますか? それとも、このコードを捨てて別のことをしますか?

4

1 に答える 1

0
match '/doc/category/:category', to: 'Docs#category',  :as => :docs_category

そう:category_docsではないdocs_categoryでしょうか?kaminari gem の詳細はわかりませんが、 を呼び出すpaginate @category_docsと、デフォルトでそれが検索されると思います。

于 2012-08-23T03:32:56.060 に答える