我正在使用ruby 1.9.3-p392上的Rails 3应用程序(特别是3.2.13)。rails自动载入不采摘猴子修补类
在我的控制器中的一个“创建”动作可以接收图像(作为ActionDispatch :: HTTP :: UploadedFile的)
我试图通过覆盖其as_json到猴补丁ActionDispatch :: HTTP :: UploadedFile的方法来返回临时文件路径,而不是临时文件File对象本身。
我这样做的原因是因为我有一个数据库记录器,通过在上下文中调用to_json来序列化日志上下文(其中包括请求参数)。 问题在于,在所述类上调用to_json会产生大量填充我的日志的二进制数据。
所以我创建了以下目录结构下的“LIB”: “action_dispatch/HTTP/uploaded_file.rb” 在这个文件中的类名为ActionDispatch::Http::UploadedFile
我还添加了lib文件夹应用.rb通过: config.autoload_paths += Dir["#{config.root}/lib"]
问题是,轨道不加载我的猴子补丁类。 如果我将require "action_dispatch/http/uploaded_file"
添加到我的控制器文件的顶部,一切正常。
为什么Rails自动加载我的猴子补丁类? 目录结构和类命名是根据Rails约定。