【问题标题】:Ruby on Rails production mode Uninitialize Constant error in HerokuRuby on Rails 生产模式在 Heroku 中取消初始化常量错误
【发布时间】:2017-03-20 08:56:44
【问题描述】:

我的应用程序在本地主机上的开发模式下运行良好。但是当我将我的应用程序部署到 Heroku 时,我遇到了这样的错误:

 /app/app/controllers/api/v1/Associations/associations_controller.rb:1:in `<top (required)>': uninitialized constant Api::V1::Associations (NameError)

我不知道我的代码有什么问题。在我的控制器中,我定义了如下类名:

class Api::V1::Associations::AssociationsController < Api::V1::ApiController

我已经把这段代码放在了我的 application.rb 上,但还是不行:

config.autoload_paths += Dir["#{Rails.root}/app/api/*"]

我有如下路线:

namespace :api do
  namespace :v1, :defaults => {:format => :json} do
    namespace :associations do
      get "/index" => "associations#index"
      post "/create" => "associations#create"
      post "/join" => "associations#join"
      resources :associations_groups
      resources :group_joined_by_springs
      resources :group_created_by_springs
    end
  end
end

在我的本地使用开发模式一切正常。我无法弄清楚如何解决这个错误。我希望有人可以帮助我。

P/s : 我已经查看了本网站提供的所有解决方案。

编辑(Rake 路线)

以下是我的协会路线

   api_v1_associations_index GET    /api/v1/associations/index(.:format)                             api/v1/associations/associations#index {:format=>:json}
                      api_v1_associations_create POST   /api/v1/associations/create(.:format)                            api/v1/associations/associations#create {:format=>:json}
                        api_v1_associations_join POST   /api/v1/associations/join(.:format)                              api/v1/associations/associations#join {:format=>:json}

【问题讨论】:

  • 您的 AssociationsController 文件的名称是什么?它位于哪里?
  • 请加bundle exec rake routes
  • 我的 AssociationsController 文件路径是 app/controllers/api/v1/Associations @SteveTurczyn
  • 我已经编辑了我的问题先生@Зелёный
  • 您好,我建议您将文件夹Associations 重命名为associations,看看是否能解决问题。

标签: ruby-on-rails ruby heroku ruby-on-rails-5


【解决方案1】:

将你的 api 目录移动到 app 目录并从 application.rb 中删除这个设置 - config.autoload_paths += Dir["#{Rails.root}/app/api/*"]

启动时存在的应用程序和引擎中的所有 app 子目录。例如,应用程序/控制器。它们不需要是默认的,任何像 app/workers 这样的自定义目录都自动属于 autoload_paths。

From http://guides.rubyonrails.org

【讨论】:

  • 还是没有运气先生。它带有错误: ActionController::RoutingError (未初始化的常量 Api::V1::Associations):
  • @AizuddinBadry:将class Api::V1::Associations::AssociationsController &lt; Api::V1::ApiController 重命名为class Api::v1::Associations::AssociationsController &lt; Api::v1::ApiController
  • @ABPrime :我对解决方案没有运气。仍然停留在 heroku 部署我的 api T_T
  • @AizuddinBadry 在应用、应用/控制器中显示您的文件夹结构
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多