Hatena::Grouprubyist

yyamasakの日記

2008/01/15 (Tue)ActiveRecordオブジェクトの等価

ActiveRecordオブジェクトのeql?==に同じ。

==の定義は、

# File /usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.2/lib/active_record/base.rb, line 1567
      def ==(comparison_object)
        comparison_object.equal?(self) ||
          (comparison_object.instance_of?(self.class) && 
            comparison_object.id == id && 
            !comparison_object.new_record?)
      end

簡単に言うと、本当に同一のオブジェクトであるか、またはidが等しいものということ。

ゲスト



トラックバック - http://rubyist.g.hatena.ne.jp/yyamasak/20080115