1

我对rails的属性感到困惑?方法。例如

class User < ActiveRecord::Base
  attr_accessible :x
end
user = User.new
user.x = 0

user.x? #false

为什么不user.x? => true0

当我深入研究 Rails 源代码时,active_support/core_ext/class/delegating_attributes.rb其中说:

define_method("#{name}?") { !!send("#{name}") } if options[:instance_reader] != false

并在active_support/core_ext/class/attribute.rb

def self.#{name}?() !!#{name} end

不是0 => true吗?

4

0 回答 0