1

Rails3.2アプリにadmin名前空間があります。https://github.com/edendevelopment/paginate_alphabeticallyにあるpaginate_alphabeticallygemを使用して、作成者のpostgresデータベースをページ付けしたいと思います。

app / controllers / admin(クラスAdmin :: AuthorsController <AdminController)のコントローラーには次のものがあります。

def index
    @authors = Author.includes(:stories).alphabetical_group(params[:letter])
    respond_to do |format|
        format.html # show.html.erb
        format.json { render json: @authors }
    end
end

app / modelsのauthor.rbモデルには次のものがあります:paginate_alphabetically:by =>:last_name

そして、app / views / admin/index.html.erbの作成者ビューには次のものがあります。

<ul class='pagination'>
<%- Author.pagination_letters.each do |letter| -%>
<li><%= link_to(letter, admin_authors_path(:letter => letter)) %></li>
<%- end -%>
</ul>

これにより、正しいhtmlが生成されているようです。

<ul class='pagination'>
<li><a href="/admin/authors?letter=A">A</a></li> 
...etc.
</ul>

ただし、クリックしてもリンクはどこにも移動しません。ルビーの出力は次のようになります。

Started GET "/admin/authors?letter=A" for 127.0.0.1 at 2012-08-14 18:18:15 -0400
Processing by Admin::AuthorsController#index as JS
Parameters: {"letter"=>"A", "collection"=>{"list"=>:get}}
Author Load (1.8ms)  SELECT "authors".* FROM "authors" 
Author Load (0.7ms)  SELECT "authors".* FROM "authors" WHERE (LOWER(last_name) LIKE     
'a%') ORDER BY last_name
Story Load (0.6ms)  SELECT "stories".* FROM "stories" INNER JOIN "authors_stories" ON   
"stories"."id" = "authors_stories"."story_id" WHERE "authors_stories"."author_id" = 1
Story Load (0.8ms)  SELECT "stories".* FROM "stories" INNER JOIN "authors_stories" ON "stories"."id" = "authors_stories"."story_id" WHERE "authors_stories"."author_id" = 2
 Story Load (67.1ms)  SELECT "stories".* FROM "stories" INNER JOIN "authors_stories" ON "stories"."id" = "authors_stories"."story_id" WHERE "authors_stories"."author_id" = 3
 Story Load (1.1ms)  SELECT "stories".* FROM "stories" INNER JOIN "authors_stories" ON "stories"."id" = "authors_stories"."story_id" WHERE "authors_stories"."author_id" = 4
 Story Load (1.2ms)  SELECT "stories".* FROM "stories" INNER JOIN "authors_stories" ON "stories"."id" = "authors_stories"."story_id" WHERE "authors_stories"."author_id" = 5
 Rendered admin/authors/_authors.html.erb (131.6ms)
 Rendered admin/authors/index.html.erb within layouts/admin (149.5ms)

171msで200OKを完了(ビュー:96.4ms | ActiveRecord:73.3ms)

URL localhost:3000 / admin / authors?letter = A(またはその他の文字)を物理的に入力すると、必要なものが記載されたページが表示されます。文字に応じて、アルファベット順の作成者のリストが表示されます。上記のリンクでは機能しません。

私のroutes.rbファイルには次のものがあります。

namespace :admin do
  resources :authors
  resources :issues
  resources :stories  
  root :to => 'authors#index
end

考え?

4

0 に答える 0