Rails - 属性?方法的返回值

时间:2013-08-28 02:27:06

标签: ruby-on-rails attributes

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

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

user.x? #false

user.x? => true为什么不0

当我深入了解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

0 个答案:

没有答案