will_paginate неопределенный метод. Похоже, драгоценный камень Will_paginate работает - PullRequest
2 голосов
/ 02 сентября 2011

Я использую рельсы 2.3.8

моя ошибка:

undefined method `will_paginate' for #<ActionView::Base:0x1124bfa10>

в среде. Rb:

require "bundler/setup"
Bundler.require(:default)

в моем Gemfile:

gem "will_paginate", "2.3.14"

в представлении:

<%= will_paginate(@subscriptions) %>

в контроллере:

@search = Subscription.search(params[:search])
@search.order ||= :ascend_by_account_id

@subscriptions = @search.all.paginate(:include => :account, :page => params[:page], :per_page => 30)

Теперь ... методы разбиения на страницы будут работать в остальной части приложения ... просто этот метод will_paginate, который должен включать ссылки на страницы, не работает. = \

Теперь я только начал использовать bundler, и до него все работало все время. в моем окружении. Я делаю

require "bundler/setup"
Bundler.require(:default)

прямо перед Rails::Initializer звонком

и вот: часть по умолчанию моего файла gem:

source "http://rubygems.org"
# system
gem "rails", "2.3.8"
gem "activesupport", "2.3.8", :require => "active_support"
gem "rake", "0.8.7"

# might be for POW, not sure
gem "childprocess", "0.2.2", :git => "git://github.com/jarib/childprocess.git"


# app
gem "mysql", "2.7"
gem "lockfile"
gem "ssl_requirement", "0.1.0"
gem "attr_encrypted", "1.1.2"
#gem "searchlogic", "2.5.6"
gem "will_paginate", "2.3.16"
gem "paperclip"


gem "garb", "0.7.6"
gem "delayed_job", "2.0.3"
gem "httparty", "0.5.2"


gem "pony", "1.1"
gem "friendly_id", "3.0.6"
gem "stringex", "1.1.0"
gem "i18n", "0.4.2"

gem "sms_fu", "1.1.1"

ПРИМЕЧАНИЕ: по какой-то причине логика поиска работает только тогда, когда она включена в вызов Rails: Initializer.run в классическом rails 2.3., Config.gem "searchlogic",: version => "2.2.28"

1 Ответ

4 голосов
/ 02 сентября 2011

Отключить автоматическое требование will_paginate:

# Gemfile
gem "will_paginate", "~> 2.3.15", :require => nil

И потребовать его самостоятельно, вручную, в конце среды. Rb:

# end of environment.rb
require "will_paginate"

Дело в том, что если выТребует will_paginate перед вызовом Rails::Initializer, он может не улучшать должным образом.

...