rails 2, Will_paginate, неопределенный метод `paginate 'для # <класса: - PullRequest
1 голос
/ 26 ноября 2011

Итак, я запускаю приложение rails 2.3.11 с пакетом, и у меня самое трудное время заставить will_paginate работать. Возвращает следующую ошибку:

неопределенный метод `paginate 'для #

def show
     @category = Category.find_by_url_name(params[:id])
     @brands = @category.brands.find(:all, :order => "name")  
     @categories = Category.find(:all)
     @meta_title = "#{@category.name}"

    respond_to do |format|
      format.html do |wants|
              @brand = @brands.first   
              @products = Product.paginate(:page => params[:page], :per_page => 6,  :conditions => ['brand_id = ? AND category_id = ?', @brand.id, @category.id])
      render :template => 'brands/show'
      end
      format.xml  { render :xml => @category }
    end
  end

это мое действие контроллера. полная ошибка:

NoMethodError in CategoriesController#show

undefined method `paginate' for #<Class:0x1034703e8>
RAILS_ROOT: /Users/tjs/Sites/emeraldcg

Application Trace | Framework Trace | Full Trace
/Users/tjs/.rvm/gems/ruby-1.8.7-p352/gems/activerecord-2.3.11/lib/active_record/base.rb:1998:in `method_missing'
/Users/tjs/Sites/emeraldcg/app/controllers/categories_controller.rb:28:in `show'
/Users/tjs/Sites/emeraldcg/app/controllers/categories_controller.rb:25:in `show'
Request

Parameters:

{"id"=>"acoustic-guitars"}
Show session dump

Response

Headers:

{"Content-Type"=>"text/html",
 "Cache-Control"=>"no-cache"}

мой гемфайл довольно прост:

# A sample Gemfile
source "http://rubygems.org"

# gem "rails"
gem "rails", '2.3.11'
gem "rake"
gem "RedCloth", ">=4.2.2"
gem "will_paginate", "~> 2.3.16"

group :development do
  gem "mysql"
  gem "capistrano"
  gem "capistrano-ext"

end

group :test do
  gem "sqlite3"
end

Я бы понял, если это не удалось из-за того, что это массив, но почему он не работает как метод класса?

спасибо за помощь.

Ответы [ 2 ]

2 голосов
/ 27 ноября 2011

Раньше там, где возникали некоторые проблемы с will_paginate и Rails 2, попробуйте обновить до последней версии op will_paginate.А пока вы можете попробовать это:

@products = Product.all.paginate(:page => params[:page], :per_page => 6,  :conditions => ['brand_id = ? AND category_id = ?', @brand.id, @category.id])
0 голосов
/ 21 октября 2013

Вы не можете вызвать paginate на модели.Его можно вызывать для коллекций, таких как хэши, массивы, ActiveRecord.

...