- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Rails 3 cattr_accessor 线程安全吗?
最佳答案
不,不是。只需快速浏览一下 cattr_reader 代码即可:
# File activesupport/lib/active_support/core_ext/class/attribute_accessors.rb, line 28
def cattr_reader(*syms)
options = syms.extract_options!
syms.each do |sym|
class_eval( unless defined? @@#{sym} @@#{sym} = nil end def self.#{sym} @@#{sym} end, __FILE__, __LINE__ + 1)
unless options[:instance_reader] == false
class_eval( def #{sym} @@#{sym} end, __FILE__, __LINE__ + 1)
end
end
end
您可以运行简单的测试:
class A
cattr_accessor :b
end
t1 = Thread.new { A.b = 1; sleep 1; p (A.b == 1); }
t2 = Thread.new { A.b = 2 }
t1.join
t2.join
# outputs "false"
这是一种使其线程安全工作的方法:http://rails-bestpractices.com/posts/2010/08/23/fetch-current-user-in-models/
关于ruby-on-rails - Rails 3 cattr_accessor 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9275469/
我正在尝试使用 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
我是一名优秀的程序员,十分优秀!