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
Ruby on rails 未初始化的常量ActionController::Dispatcher::MiddlewareStack_Ruby On Rails_Environment_Actioncontroller - Fatal编程技术网

Ruby on rails 未初始化的常量ActionController::Dispatcher::MiddlewareStack

Ruby on rails 未初始化的常量ActionController::Dispatcher::MiddlewareStack,ruby-on-rails,environment,actioncontroller,Ruby On Rails,Environment,Actioncontroller,我安装了一些新的gems进行测试,并遇到了一个未初始化的常量ActionController::Dispatcher::MiddlewareStack错误。我按照gemrdocs上的说明在我的environment.rb文件中指定gem依赖项,然后运行rake gems:install和rake gems:unpack 我还将environment.rb文件一次复制一行到另一个项目中,但没有得到错误。我想知道还有什么事情会出错 下面是一个较长版本的错误(我第一次在运行一个简单测试时遇到错误;当我

我安装了一些新的gems进行测试,并遇到了一个未初始化的常量ActionController::Dispatcher::MiddlewareStack错误。我按照gemrdocs上的说明在我的environment.rb文件中指定gem依赖项,然后运行rake gems:install和rake gems:unpack

我还将environment.rb文件一次复制一行到另一个项目中,但没有得到错误。我想知道还有什么事情会出错

下面是一个较长版本的错误(我第一次在运行一个简单测试时遇到错误;当我确实需要“active_support”时,在控制台中也会发生同样的情况):

以下是my environment.rb文件(已删除默认注释):


我以前写过一些误导性的信息,但是,现在我设法坐下来不受干扰地看了几分钟,我通过编辑我的environment.rb修复了我的问题,并将require“has\u polymorphs”语句移动到初始值设定项块之后


宾果。我很努力地面对palmed,但这就是我们学习的方式。

遵循这一思路已经有一段时间了-ric上面的答案在开发过程中对我们有用,但切换到生产模式导致了一个错误。将require放回初始值设定项块上方,并使用Ric的原始修复程序,效果很好。他的编辑已经删除了它-所以对于后面的任何人来说,这里又是:顺便说一句-我们现在在hmp上使用trunk,而不是johnsbrn分支,现在2.3.2似乎工作得很好

编辑:它几乎解决了我的问题。后来我发现迁移也出现了类似的问题。看完代码后,我很快找到了答案,其中包括需要缺少的类(action\u controller/middleware\u stack)

快速修复方法是在相对路径下编辑文件:

“johnsbrn-has_many_polymorphs/lib/has_many_polymorphs/autoload.rb”

并在前两行之间插入以下行:

除非定义,否则需要“操作\控制器/中间件\堆栈”:ActionController::MiddlewareStack

e、 g.结果是这样的:

除非定义,否则需要“初始值设定项”:Rails::初始值设定项

除非定义,否则需要“操作\控制器/中间件\堆栈”:ActionController::MiddlewareStack

除非定义,否则需要“控制器/调度器操作”:ActionController::Dispatcher

现在一切正常。

在environment.rb中:

require File.join(File.dirname(__FILE__), 'boot')
require 'action_controller/middleware_stack' unless defined? ::ActionController::MiddlewareStack
require 'has_many_polymorphs'

适用于我

如果其他人像我一样浏览此页面,我只需将我的has_many_polymorphs gem从1.12.1升级到1.13,并将其重新冻结到我的供应商文件夹(并更新environment.rb中的config.gem行以使用新版本号)即可解决此问题.

我认为这与要求“有许多变形”的线条有关。我在谷歌上搜索了rails 2.3.2的“有很多变形”兼容性,但没有找到任何确定的东西。你试过一次安装一个gem吗?另外,你可能想创造一个新的秘密,现在你已经和我们大家分享了:P.这对我来说很有效,尽管它与has_many_polymorphs documentation.oops相反-很抱歉。还没来得及在生产模式下尝试它(开发周期长!)
RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION
# config.gem 'has_many_polymorphs', :version => "2.12"
# require ‘has_many_polymorphs‘

# Bootstrap the Rails environment, frameworks, and default configuration

require File.join(File.dirname(__FILE__), 'boot')
require 'has_many_polymorphs' 
require 'active_support'

Rails::Initializer.run do |config|

  config.time_zone = 'UTC'


  config.gem "thoughtbot-factory_girl",
             :lib    => "factory_girl",
             :source => "http://gems.github.com"


   config.gem 'thoughtbot-shoulda',
              :lib => false,
              :source => 'http://gems.github.com'

end
require File.join(File.dirname(__FILE__), 'boot')
require 'action_controller/middleware_stack' unless defined? ::ActionController::MiddlewareStack
require 'has_many_polymorphs'