Неопределенный метод `paginate'для Array on Rails 3 с mongoid
Попытка использовать гем will_paginate.
Мой Gem файл имеет:
gem 'will_paginate', '~> 3.0.0'
Мои orders_controllers.rb:
def index
@orders = Order.all.paginate(:page => params[:page], :per_page => 20)
respond_to do |format|
format.html # index.html.erb
format.json { render json: @orders }
end
end
На моем index.html.erb я положил:
<%= will_paginate @orders %>
Ошибка:
NoMethodError in OrdersController#index
undefined method `paginate' for #<Array:0x007f79a1be62f8>
Rails.root: /home/askar/Dropbox/rails_studio/somics
Application Trace | Framework Trace | Full Trace
app/controllers/orders_controller.rb:5:in `index'
У меня теперь есть камень каминари для нумерации страниц, но я хочу знать о will_paginate.
4 ответа
Функции массива по умолчанию отключены, их необходимо включить, указав их в файле WillPaginate:
require 'will_paginate/array'
В вашей конфигурации / инициализаторах добавьте файл will_paginate_array_fix.rb, а в файл will_paginate_array_fix.rb добавьте
require 'will_paginate/array'
Я просто хотел добавить, что после того, как вы сделаете, как предлагает предыдущий ответ:
В вашей конфигурации / инициализаторах добавьте файл will_paginate_array_fix.rb, а в файл will_paginate_array_fix.rb добавьте
require 'will_paginate/array'
Вам нужно перезагрузить сервер, чтобы это вступило в силу.
Я не думаю, что нам нужно добавлять какие-либо файлы в конфигурации / инициализаторы. После того, как вы выполните все шаги, указанные на официальной странице github, перезапустите сервер rails, и все будет работать нормально.