Замените плагин 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?. ТИА

0 ответов

Другие вопросы по тегам