- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在rails开发环境中,cache_classes
是关闭的,所以你可以修改app/
下的代码,不用重启服务器就可以看到变化。
不过,在所有环境中,中间件只会创建一次。所以如果我有这样的中间件:
class MyMiddleware
def initialize(app)
@app = app
end
def call(env)
env['model'] = MyModel.first
end
end
我在 config/environments/development.rb
中执行此操作:
config.cache_classes = false # the default for development
config.middleware.use MyMiddleware
那么我总是会得到以下错误:
A copy of MyMiddleware has been removed from the module tree but is still active!
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:414:in `load_missing_constant'
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:96:in `const_missing'
/Users/me/projects/my_project/lib/my_middleware.rb:8:in `call'
/Library/Ruby/Gems/1.8/gems/actionpack-2.3.2/lib/action_controller/middleware_stack.rb:72:in `new'
...
问题是 MyMiddleware
实例在系统加载时创建一次,但 MyModel
类在每次调用时都会重新加载。
我试过 'MyModel'.constantize.first
延迟绑定(bind)到类,直到方法调用时间,但这将问题变成了一个新问题:
You have a nil object when you didn't expect it!
The error occurred while evaluating nil.include?
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/active_record/attribute_methods.rb:142in `create_time_zone_conversion_attribute?'
/Library/Ruby/Gems/1.8/gems/activerecord-2.3.2/active_record/attribute_methods.rb:75:in `define_attributes_methods'
...
最佳答案
关于ruby-on-rails - 如何在关闭 cache_classes 的情况下使用来自中间件的域对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/991113/
在rails开发环境中,cache_classes是关闭的,所以你可以修改app/下的代码,不用重启服务器就可以看到变化。 不过,在所有环境中,中间件只会创建一次。所以如果我有这样的中间件: clas
我有两个名为 Scope 和 ScopeItem 的 ActiveRecord 模型,具有 has_many 关系: class Scope :environment do scope
我正在尝试使用 TestUnit 设置 Spork 和 Capybara,并且正在运行 进入 test.rb 配置问题。 问题是 Spork 要求 config.cache_classes 设置为fa
我只是想知道,当将config.cache_classes设置为true时,没有找到对缓存的模型类(ActiveRecord)中的内容的明确响应? 有人可以告诉我或指向我没有找到的文档吗? 谢谢 最佳
我是 RoR 的新手,目前需要为 redmine 开发一个插件(目前还不是问题)。因此,我设置了 ruby 1.8.7、redmine 1.0.5 和 radrails 2。ruby 解释器在 r
我正在向我的 rails 应用程序添加一个可安装的引擎,它提供了类似论坛的功能(即添加问题、答案、评论等)。在开发中一切正常。然而,在登台/生产中,我在尝试创建答案时遇到错误,特别是 CanCan 权
我正在关注 Michael Hartl (railstutorial.org) 的 Ruby on Rails 教程。 在某些时候,我厌倦了测试失败只是因为测试使用了旧的缓存版本的类,所以我在测试环境
我有一个 gem,它通过 routes.rb 作为引擎安装在我的 rails 应用程序中& Gemfile .以下是重要的部分: 应用程序' gem 文件 source 'https://rubyge
环境: rails 2.3.2 动态接口(interface) 0.4.1 DBD/ODBC 0.2.4 场景: 我有一个 Rails 应用程序,它通过常规批处理作业将大部分数据从外部 SQL DB
我有一个引擎,它在其初始化程序中扩展另一个引擎的类,如下所示: module MyApp class Engine < ::Rails::Engine initializer
我有一些针对我的开发 Rails 服务器运行的 iPhone 客户端测试。如果我在 Rails 配置中打开类缓存,整个套件的运行速度将提高一个数量级。另一方面,当我没有实际运行测试时,这会减慢开发速度
我正在尝试通过缓存开发中的类来加速我的 web 前端, My::Application.configure do config.cache_classes = true end 但如果我的模型或库
我在使用 Spork 测试服务器时遇到了问题。 如果我在 config/environments/test.rb 中设置 config.cache_classes = false 则规范开始出现错误。
有一段时间我在使用 Selenium/Spork/Rspec,将 cache_classes 设置为 false,一切似乎都正常。 在切换到 webkit 时,我开始遇到与 cache_classes
应用程序不会在 config.cache_classes 设置为 true 的生产模式下启动。它在堆栈跟踪中给出以下错误: $ bundle exec rails s -e productio
我有一个在 Rails 4.1.1 应用程序中使用的模块 module A extend ActiveSupport::Concern included do #Some cod
我是一名优秀的程序员,十分优秀!