1

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

4

0 に答える 0