【问题标题】:Running rake routes on Rails 5 giving instantiation error在 Rails 5 上运行 rake 路由给出实例化错误
【发布时间】:2017-06-03 15:37:22
【问题描述】:

我正在尝试设置一个准系统 Rails 应用程序。到目前为止,我已经生成了一个示例文章模型,向数据库中添加了一些记录,将我的路由配置编辑为以下内容:

Rails::Application.routes.draw do
  resources :articles
end

但是当我运行 bin/rake routesbundle exec rake routesrake routes 时,我收到以下错误:

$ bin/rake routes                                                                                                                               (articles-controller✱)
rake aborted!
Rails::Application is abstract, you cannot instantiate it directly.
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/railtie.rb:206:in `initialize'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/engine.rb:434:in `initialize'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application.rb:124:in `initialize'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/railtie.rb:162:in `new'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/railtie.rb:162:in `instance'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application.rb:95:in `instance'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/railtie.rb:184:in `method_missing'
/Users/sam/turing/2module/personal_work/projects/blogger/config/routes.rb:1:in `<top (required)>'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/activesupport-5.1.1/lib/active_support/dependencies.rb:286:in `load'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/activesupport-5.1.1/lib/active_support/dependencies.rb:286:in `block in load'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/activesupport-5.1.1/lib/active_support/dependencies.rb:258:in `load_dependency'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/activesupport-5.1.1/lib/active_support/dependencies.rb:286:in `load'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application/routes_reloader.rb:55:in `block in load_paths'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application/routes_reloader.rb:55:in `each'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application/routes_reloader.rb:55:in `load_paths'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application/routes_reloader.rb:18:in `reload!'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application/routes_reloader.rb:41:in `block in updater'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/activesupport-5.1.1/lib/active_support/file_update_checker.rb:81:in `call'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/activesupport-5.1.1/lib/active_support/file_update_checker.rb:81:in `execute'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application/routes_reloader.rb:42:in `updater'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application/routes_reloader.rb:31:in `execute_if_updated'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application/finisher.rb:128:in `block in <module:Finisher>'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/initializable.rb:30:in `instance_exec'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/initializable.rb:30:in `run'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/initializable.rb:59:in `block in run_initializers'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/initializable.rb:58:in `run_initializers'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application.rb:353:in `initialize!'
/Users/sam/turing/2module/personal_work/projects/blogger/config/environment.rb:5:in `<top (required)>'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application.rb:329:in `require'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application.rb:329:in `require_environment!'
/Users/sam/.rvm/gems/ruby-2.2.6/gems/railties-5.1.1/lib/rails/application.rb:445:in `block in run_tasks_blocks'
Tasks: TOP => routes => environment
(See full trace by running task with --trace)

有什么想法吗?我所有的宝石都使用bundle update

【问题讨论】:

    标签: ruby-on-rails ruby routes


    【解决方案1】:

    糟糕,看起来 routes.rb 文件的语法在 Rails 5 中有点不同。对于遇到此问题的其他人,do 块的语法是 Rails.application.routes.draw do,而不是 Rails::Application.routes.draw do

    【讨论】:

      猜你喜欢
      • 2017-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 2021-07-07
      • 2012-11-23
      • 1970-01-01
      相关资源
      最近更新 更多