2013-12-04 4 views
4

Недавно я установил жемчужину will_paginate в свой блог разработки, и у меня возникли проблемы. Я добавил его к моей Gemfile:will_paginate undefined method 'per'

gem 'will_paginate' 

затем подают его в контроллер сообщений:

def index 
    @posts = Post.paginate(:per_page => 5, :page => params[:page], :order => 'created_at DESC') 

    respond_to do |format| 
    format.html # index.html.erb 
    format.json { render json: @posts } 
    format.atom 
    end 
end 

и, наконец, в поле зрения:

<div id="post" style="background-color: gray; border-radius: 20px; border-bottom: solid black 2px; padding-bottom: 40px; padding-top: 40px; margin: auto;"> 
    <%= post.content.html_safe %> 
</div> 
<br /> 
<div style="padding-bottom: 40px; background-color: brown;"> 
    <li>Posted:&nbsp;&nbsp;<%= post.created_at.to_formatted_s(:long) %></li> 
    <li>Author:&nbsp;&nbsp;<%= post.author_name %></li> 
    <li>Comments:&nbsp;&nbsp;<%= post.comments.count %></li> 
</div> 
<br /> 
<br /> 

<%= will_paginate @posts %> 

Индекс страница работает нормально. В настоящее время он не разбит на страницы, потому что у меня недостаточно должностей, созданных в среде разработки (собирался создать их через панель администратора, столкнулся с этим). Он также отлично работает на панели администратора (с использованием active_admin). Это только тогда, когда я нажимаю «сообщения» (или любую другую ссылку) на панели администратора, чтобы сделать новый пост, который я получаю следующее сообщение об ошибке:

NoMethodError in Admin::PostsController#index 
undefined method `per' for #  <ActiveRecord::Relation::ActiveRecord_Relation_Post:0x5b37d30> 

Я не совсем уверен, как действовать, и оценить любого Помогите. Извините за простой вопрос.

+0

Вы говорите, что индексная страница работает нормально? Зачем вам нужно разбивать страницы на «новое» действие? –

+0

Я этого не делаю, я просто хочу его по индексу. Моя проблема в том, когда я иду создавать новые сообщения, используя панель администратора, чтобы проверить разбиение на страницы, я получаю неопределенный метод. –

+0

try 'Post.order (created_at DESC) .paginate: per_page => 5,: page => params [: page]' –

ответ

18

Похоже, что ActiveAdmin использует Kaminari для разбивки на страницы, которая конфликтует с will_paginate.

Смотрите здесь для работы вокруг: https://github.com/gregbell/active_admin/blob/47aa68d33da02c2c05cf1769402aac3df0ad02c7/docs/0-installation.md

# config/initializers/kaminari.rb 
Kaminari.configure do |config| 
    config.page_method_name = :per_page_kaminari 
end 
+0

В каталоге не было такого файла. Я создал один и добавил в код, сохранил его и перезагрузил без каких-либо последствий. Такая же ошибка. :/ –

+2

Как насчет дополнительных шагов, рекомендованных здесь: https://github.com/gregbell/active_admin/issues/1833 –

+0

Hah! Genius! Вы решили это. Я советую тебе шляпу, сэр. :) –

Смежные вопросы