Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 与rails中的模块和模型名称混淆_Ruby On Rails_Ruby_Namespaces - Fatal编程技术网

Ruby on rails 与rails中的模块和模型名称混淆

Ruby on rails 与rails中的模块和模型名称混淆,ruby-on-rails,ruby,namespaces,Ruby On Rails,Ruby,Namespaces,我在项目中为客户实施了完整的CRUD系统。customers\u controller.rb的路径为 app/controllers/admin/customers_controller.rb 除此之外,我还必须添加新功能,因此我创建了一个新的控制器feature\u controller.rb(名称已更改),其文件路径如下 app/controllers/admin/customer/features_controller.rb 控制器内部的代码 module Admin module

我在项目中为
客户实施了完整的CRUD系统。
customers\u controller.rb
的路径为

app/controllers/admin/customers_controller.rb
除此之外,我还必须添加新功能,因此我创建了一个新的控制器
feature\u controller.rb
(名称已更改),其文件路径如下

app/controllers/admin/customer/features_controller.rb
控制器内部的代码

module Admin
  module Customer
    class FeatureController < ApplicationController
      def index; end
    end
  end
end
第21行是:

@customer = Customer.new customer_params
if @customer.save
....
然后我删除了新控制器和文件夹,但仍然是相同的错误

我在
binding.pry中查看了
Customer
类的类型,它说它是一个
模块

更新 development.rb

  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Do not eager load code on boot.
  config.eager_load = false
config.autoload_paths += %W(#{config.root}/lib)
    config.autoload_paths += Dir["#{config.root}/lib/**/*"].select{|f| File.directory? f}
应用程序.rb

  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Do not eager load code on boot.
  config.eager_load = false
config.autoload_paths += %W(#{config.root}/lib)
    config.autoload_paths += Dir["#{config.root}/lib/**/*"].select{|f| File.directory? f}

使用常量解析运算符(


将为您解决此问题,因为这样您可以告诉rails查找当前范围之外的
客户
常量。

使用常量解析运算符(


将为您解决此问题,因为这样您可以告诉rails查找当前范围之外的
客户
常量。

您是否介意解释问题所在以及解决方案的帮助方式?然后我必须在旧代码中进行所有更改。我已经从项目中删除了新控制器,但它仍然与之冲突。你知道为什么吗?@Ahmadhamza我想这和自动加载有关。尝试重新启动服务器和spring。我猜也是这样,并重新启动了系统。但是没有运气。我试图停止spring,但它说,
spring没有运行
@Ahmadhamza搜索有关在开发模式下自动加载的一些配置设置,您介意解释一下问题所在以及解决方案的帮助方式吗?然后我必须在旧代码中进行所有更改。我已经从项目中删除了新控制器,但它仍然与之冲突。你知道为什么吗?@Ahmadhamza我想这和自动加载有关。尝试重新启动服务器和spring。我猜也是这样,并重新启动了系统。但是没有运气。我试图停止spring,但它说,
spring没有运行
@Ahmadhamza搜索有关在开发模式下自动加载的一些配置设置。有人知道吗?由于您在查看旧代码时遇到问题,请尝试关闭开发缓存。由于这个问题是最近几个月提出的,您可能正在使用Rails 5和Puma<代码>rails服务器--帮助
。请尝试以下命令:
rails服务器--无开发缓存
。有人知道吗?由于您在查看旧代码时遇到问题,请尝试关闭开发缓存。由于这个问题是最近几个月提出的,您可能正在使用Rails 5和Puma<代码>rails服务器--帮助
。尝试以下命令:
rails服务器--无开发人员缓存