Ruby on Rails控制台 - 未定义的方法 `assets`

7
在这个项目中,控制台无法启动,我尝试了谷歌上能找到的所有方法。我运行了"rails c"命令,但是收到了一个错误提示:
/Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/railties-5.2.0/lib/rails/railtie/configuration.rb:97:in `method_missing': undefined method `assets' for #<Rails::Application::Configuration:0x007fae6a9bdf78>
Did you mean?  asset_host (NoMethodError)
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/popper_js-1.12.9/lib/popper_js/engine.rb:6:in `block in <class:Engine>'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/railties-5.2.0/lib/rails/initializable.rb:32:in `instance_exec'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/railties-5.2.0/lib/rails/initializable.rb:32:in `run'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/railties-5.2.0/lib/rails/initializable.rb:61:in `block in run_initializers'
    from /Users/gorbunov/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:228:in `block in tsort_each'
    from /Users/gorbunov/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
    from /Users/gorbunov/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:431:in `each_strongly_connected_component_from'
    from /Users/gorbunov/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:349:in `block in each_strongly_connected_component'
    from /Users/gorbunov/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:347:in `each'
    from /Users/gorbunov/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:347:in `call'
    from /Users/gorbunov/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:347:in `each_strongly_connected_component'
    from /Users/gorbunov/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:226:in `tsort_each'
    from /Users/gorbunov/.rvm/rubies/ruby-2.4.1/lib/ruby/2.4.0/tsort.rb:205:in `tsort_each'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/railties-5.2.0/lib/rails/initializable.rb:60:in `run_initializers'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/railties-5.2.0/lib/rails/application.rb:361:in `initialize!'
    from /Users/gorbunov/Projects/buktopuha_api/config/environment.rb:5:in `<main>'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `block in require'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:249:in `load_dependency'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/activesupport-5.2.0/lib/active_support/dependencies.rb:283:in `require'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:102:in `preload'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:153:in `serve'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:141:in `block in run'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:135:in `loop'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application.rb:135:in `run'
    from /Users/gorbunov/.rvm/gems/ruby-2.4.1/gems/spring-2.0.2/lib/spring/application/boot.rb:19:in `<top (required)>'
    from /Users/gorbunov/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/gorbunov/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from -e:1:in `<main>'

我不知道该怎么办。非常感谢!


你的 config/application.rb 中未定义 assets 方法,请尝试将其删除。 - rails_id
请检查此行代码 from /Users/gorbunov/Projects/buktopuha_api/config/environment.rb:5:in <main>'`。 - Akash Pinnaka
你可以参考以下线程,这可能会对你有所帮助 https://github.com/fgrehm/letter_opener_web/issues/46 - Gokul P
@rails_id 在config/application.rb中没有assets方法。 - Pum Purum
Rails.application.initialize!Rails应用程序初始化! - Pum Purum
2
你是否已经安装了sass-railsjquery-railsuglifier?同时在application.rb文件中添加一行代码require "sprockets/railtie",然后检查它是否正常工作。 - Akash Pinnaka
2个回答

7

我曾遇到此问题,找到了这里的解决方案,即需确保config/application.rb中有sprockets行。

require "rails"
 require "active_model/railtie"
 require "active_job/railtie"
 require "active_record/railtie"
 require "active_storage/engine"
 require "action_controller/railtie"
 require "action_mailer/railtie"
 require "action_mailbox/engine"
 require "action_text/engine"
 require "action_view/railtie"
 require "action_cable/engine"
 require "sprockets/railtie"  # <--- make sure this line is here
 require "rails/test_unit/railtie"

请注意,以上行在不同版本的rails之间略有不同。您可以在您所使用的rails版本的rails指南中找到它应该看起来像什么。这里是Rails 6.1,这里是7.0。
有趣的是,我刚刚删除了require "sprockets/railtie",因为我试图移除sprockets。无论如何,我把它放回去了,现在Rails又很开心了。

1

补充一下,你还需要在你的gemfile中添加这个

gem 'sprockets-rails'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接