2011-08-26 7 views
6

Ho un'app per rails 3 e sto provando a fare test. Faccio il seguente comando RSpec spec/controller/e ottenere il seguente errore:non può modificare array congelato (TypeError) - config/application.rb: 42: in `<< ':

/config/application.rb:42:in `<<': can't modify frozen array (TypeError) 
     from c:/Users/#####/documents/#####/config/application.rb:42 

Si punta al mio config/file di application.rb che ho fornito di seguito.

require File.expand_path('../boot', __FILE__) 

require 'rails/all' 

# If you have a Gemfile, require the gems listed there, including any gems 
# you've limited to :test, :development, or :production. 
Bundler.require(:default, Rails.env) if defined?(Bundler) 

module PadOnRails 
    class Application < Rails::Application 
    # Settings in config/environments/* take precedence over those specified here. 
    # Application configuration should go into files in config/initializers 
    # -- all .rb files in that directory are automatically loaded. 

    # Custom directories with classes and modules you want to be autoloadable. 
    # config.autoload_paths += %W(#{config.root}/extras) 

    # Only load the plugins named here, in the order given (default is alphabetical). 
    # :all can be used as a placeholder for all plugins not explicitly named. 
    # config.plugins = [ :exception_notification, :ssl_requirement, :all ] 

    # Activate observers that should always be running. 
    # config.active_record.observers = :cacher, :garbage_collector, :forum_observer 

    # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. 
    # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. 
    # config.time_zone = 'Central Time (US & Canada)' 

    # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. 
    # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] 
    # config.i18n.default_locale = :de 

    # JavaScript files you want as :defaults (application.js is always included). 
    # config.action_view.javascript_expansions[:defaults] = %w(jquery rails) 

    # Configure the default encoding used in templates for Ruby 1.9. 
    config.encoding = "utf-8" 

    # Configure sensitive parameters which will be filtered from the log file. 
    config.filter_parameters += [:password] 

    config.autoload_paths << "#{config.root}/lib" 


    end 
end 

qualcun altro ha riscontrato questo tipo esatto di problema. In tal caso, come lo risolvete perché ho cancellato il mio progetto e ho fatto un clone git dappertutto e ho ancora lo stesso errore.

+1

Provare, 'config.autoload_paths + = [" # {config.root}/lib "]' – rubish

risposta

9

provare il metodo suggeriscono i commenti:

config.autoload_paths += %W{#{config.root}/lib} 

Questo non modifica la matrice iniziale, ma aggiunge l'array dato a config.autoload_paths e lo salva in un nuovo array in config.autoload_paths.

Problemi correlati