undefined method `paginate' for Array on Rails 3 with mongoid

耗尽温柔 提交于 2019-12-13 18:25:12

问题


Trying to use will_paginate gem.

My Gem file has:

gem 'will_paginate', '~> 3.0.0'

My 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

On my index.html.erb I've put:

<%= will_paginate @orders %>

Error:

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'

I now there's kaminari gem for pagination, but I want to know about will_paginate.


回答1:


Array functions are disabled by default you have to enable them by requiring them in your WillPaginate file:

require 'will_paginate/array'



回答2:


In your config/initializers add will_paginate_array_fix.rb file and in will_paginate_array_fix.rb file add

require 'will_paginate/array'



回答3:


I just wanted to add that after you do as the previous answer suggests:

In your config/initializers add will_paginate_array_fix.rb file and in will_paginate_array_fix.rb file add

require 'will_paginate/array'

You need to restart your server in order for that to take effect.




回答4:


I don't think we need to add any files in the config/initializers. Just after doing all the steps as mentioned on the official github page restart the rails server and all will work fine.



来源:https://stackoverflow.com/questions/17019924/undefined-method-paginate-for-array-on-rails-3-with-mongoid

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!