Ruby on Rails:全新项目中的未初始化常量

时间:2018-07-20 14:08:51

标签: ruby-on-rails ruby

在发布之前,我已经在Stack中进行了搜索,因为我看到了很多具有相同错误的结果。但是,即使我尝试了所有修复程序,也无济于事。我还删除了整个项目3次,并尝试做不同的事情。目前,我所遵循的方式与Ruby on Rails指南中的文档完全相同(如下)。一旦更改了route.rb的根,一切都会因未初始化的常量StaticPages错误而停止。

这是我在“ routes.rb”中的代码

Rails.application.routes.draw do
  get 'static_pages/index'

  root 'static_pages/#index'
end

我用来生成控制器的命令

$ rails generate controller StaticPages index

我完全按照步骤进行。而且没有办法工作。我不知道该怎么办。

  

static_pages_index_path GET /static_pages/index(.:format)
  static_pages#index

     

root_path GET / static_pages /#index

     

rails_service_blob_path GET / rails / active_storage / blobs /:signed_id / *文件名(。:format)
  active_storage / blobs#show

     

rails_blob_representation_path GET / rails / active_storage / representations /:signed_blob_id /:variation_key / *文件名(。:format)
  active_storage / representations#show

     

rails_disk_service_path GET / rails / active_storage / disk /:encoded_key / *文件名(。:format)active_storage / disk#show

     

update_rails_disk_service_path PUT /rails/active_storage/disk/:encoded_token(.:format)active_storage / disk#update

     

rails_direct_uploads_path POST /rails/active_storage/direct_uploads(.:format)
  active_storage / direct_uploads#create

http://guides.rubyonrails.org/getting_started.html#creating-the-blog-application

1 个答案:

答案 0 :(得分:2)

通常,由于模块名和文件名不匹配而导致在尝试找到控制器时出现“未初始化的常量”错误,因为Rails会尝试根据其名称自动加载控制器。检查以下内容:

  1. 您有一个名为app/controllers/static_pages_controller.rb的文件
  2. 以上文件以class StaticPagesController < ApplicationController
  3. 开头

另一个潜在的问题是您的路由文件中的语法不正确。 /定义中不应包含root。尝试将其更改为:

root to: 'static_pages#index'