Замените плагин Role_requirement гемом и исправьте проблему с помощью class_inheritable_array
У нас есть проект, работающий на Rails 3.1.16 и ruby 1.9.3. Мы планируем обновить версию рельсов до 3.2. Проблема, с которой мы столкнулись, это когда мы обновляем Gemfile
gem 'rails', '3.2.6'
и сделайте установку пакета. и все работает идеально. только
ПРЕДУПРЕЖДЕНИЕ О УСТАРЕВАНИИ: У вас есть плагины в стиле Rails 2.3 вендора / плагинов! Поддержка этих плагинов будет удалена в Rails 4.0. Переместите их и объедините в свой Gemfile или сложите в свое приложение как lib / myplugin / * и config/initializers/myplugin.rb. Для получения дополнительной информации см. Примечания к выпуску: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (вызывается из /home/*****/********/config/environment.rb:6)
когда мы пытаемся сделать localhost:3000 получает ошибку ниже,
Начал GET "/" для 127.0.0.1 в 2017-09-06 11:59:02 +0530
ActionController::RoutingError - undefined method `class_inheritable_array' for ApplicationController:Class:
когда я беру ApplicationController,
он содержит
require File.join(Rails.root, 'lib', 'role_requirement_system.rb')
include RoleRequirementSystem
также при переходе к файлу RoleRequirementSystem, он показывает
module RoleRequirementSystem
def self.included(klass)
klass.send :class_inheritable_array, :role_requirements
klass.send :include, RoleSecurityInstanceMethods
klass.send :extend, RoleSecurityClassMethods
klass.send :helper_method, :url_options_authenticate?
klass.send :role_requirements=, []
end
Мы считаем, что проблема class_inheritable_array существует в active_support. когда я пытался в rails 3.1.16, он показывает некоторое определение кода в active_support, а когда я перешел на 3.2.6, определения кода нет. Это моя ошибка при обновлении версии Rails?. ТИА