【问题标题】:undefined method `assets' for #<Rails::Application::Configuration>#<Rails::Application::Configuration> 的未定义方法“资产”
【发布时间】:2011-12-11 22:52:29
【问题描述】:

您好,我正在将 Rails 2 应用程序升级到 Rails 3。 当我想运行类似:rails crake -T 等时,它会抛出这个:

$ rails c
/usr/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/railtie/configuration.rb:77:in `method_missing': undefined method `assets' for #<Rails::Application::Configuration:0xb6569120> (NoMethodError)
    from /home/neoriddle/proyectos/interkids/config/application.rb:49
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/commands.rb:21:in `require'
    from /usr/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/commands.rb:21
    from script/rails:6:in `require'
    from script/rails:6

这是rails c,下一个日志正在运行rake -T

$ rake -T --trace
rake aborted!
undefined method `assets' for #<Rails::Application::Configuration:0xb658aa64>
/usr/lib/ruby/gems/1.8/gems/railties-3.0.9/lib/rails/railtie/configuration.rb:77:in `method_missing'
/home/neoriddle/proyectos/interkids/config/application.rb:49
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
/home/neoriddle/proyectos/interkids/Rakefile:5
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:501:in `raw_load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.9.2.2/bin/rake:33
/usr/bin/rake:19:in `load'
/usr/bin/rake:19

你有解决这个问题的想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 rake assets


    【解决方案1】:

    直到 rails 3.1 才包含资产管道。将您的 rails gem(和应用程序)升级到 rails 3.1+。

    【讨论】:

    • 我将从 3.0 升级到 3.1,但现在我需要完成从 2.x 到 3.0 的升级。现在需要 Rails 3.0,所以我需要一段时间才能工作。那么我该如何(暂时)修复以使其正常工作?
    • @NeoRiddle:从config中的文件中删除引用config.assets的行。
    • 是的,现在您可以删除对 config.assets 的所有引用。确保将答案标记为已接受,因为这是您的错误的答案:)
    【解决方案2】:

    我遇到了同样的问题,但在下面解决了。

    红宝石-v:3.0.2 Rails -v:6.1.3

    config/application.rb

    require "sprockets/railtie”
    

    终端

    $ mkdir -p app/assets/config && echo '{}' > app/assets/config/manifest.js
    

    【讨论】:

      【解决方案3】:

      我的应用是 api_only,所以 Rails 在生成新资源时跳过了创建资产。

      我从development.rbproduction.rb 中删除了对config.assets 的引用,它起作用了。

      基本上,如果您的应用不需要它,您可以删除对assets 的引用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-10
        • 2014-03-20
        • 2011-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-18
        • 1970-01-01
        相关资源
        最近更新 更多