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
?