- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
好吧,我知道这有点怪诞,但我正在运行 JRuby on Rails,而且我对两者都比较陌生。我看到一些我无法理解的行为,我想知道是我做错了什么还是我的堆栈有问题。基本问题是我的类属性似乎正在重新初始化,这是我不希望发生的事情。
这基本上是我的代码
class MyController < ActionController::Base
cattr_accessor :an_attr
before_filter :init_an_attr
def init_an_attr
if @@an_attr.nil?
@@an_attr = {}
end
# do some other stuff here
end
end
问题在于每次调用 init_an_attr 时,if 条件的计算结果为真,我最终重新分配 @@an_attr。
这是预期的行为吗?如果可以,您能解释一下原因吗,因为对我来说,作业应该只发生一次。
最佳答案
在 Rails 中,当以开发模式运行时,类不会被缓存。 MyController 和所有其他类都会在每次请求时重新加载。在生产环境中运行时,情况并非如此 - 类被缓存。
但是,即使在生产环境中,这个变量对于特定的应用程序实例也是本地的 - 例如,如果您使用两个 Mongrels 运行,每个都会有这个变量的不同版本。
如果您希望跨多个请求设置状态,请考虑使用 session 或将值存储在数据库中。类变量确实不适合跨请求存储。
关于ruby-on-rails - 为什么使用 cattr_accessor(JRuby、Rails)重新初始化我的类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5121102/
我正在尝试使用 google_search ruby 库(代码如下)但它提示“cattr_accessor 是一个未定义的方法” - 任何想法为什么会这样或我如何解决它? require 'rubyg
我有点生气为什么会这样: cattr_accessor :aggregate { true } 失败并出现错误: syntax error, unexpected '{', expecting key
我有点生气为什么会这样: cattr_accessor :aggregate { true } 失败并出现错误: syntax error, unexpected '{', expecting key
我正在阅读 Rails 3 的 Rails 指南,他们使用这种方法: cattr_accessor :attribute 这是什么方法?它是一个 Rails 方法吗?我以前从未见过。 最佳答案 这是一
Rails 3 cattr_accessor 线程安全吗? 最佳答案 不,不是。只需快速浏览一下 cattr_reader 代码即可: # File activesupport/lib/active_
运行这段代码: module A def self.included(klass) klass.send(:cattr_accessor, :my_name) end def se
我是 ruby 和 rails 的新手。在我的 Rails 应用程序中,我正在尝试使用 Wicked Wizard gem,需要一些帮助来理解我在代码中遇到的 cattr_accessor c
好吧,我知道这有点怪诞,但我正在运行 JRuby on Rails,而且我对两者都比较陌生。我看到一些我无法理解的行为,我想知道是我做错了什么还是我的堆栈有问题。基本问题是我的类属性似乎正在重新初始化
我无法从源代码中找出类和模块中分别提供的 cattr_* 和 mattr_* 方法之间的区别。我读了这个问题:What is mattr_accessor in a Rails module?其中提供
我不熟悉 active_support,所以请多多包涵! Fox's library允许通过谷歌的 API 进行搜索,但它需要积极的支持。我似乎无法让它工作!有什么想法吗? require 'ruby
我是一名优秀的程序员,十分优秀!