[rspec-users] variable strange change

Evgeniy Dolzhenko dolzenko at gmail.com
Thu Sep 16 01:22:57 EDT 2010


Typical Ruby gotcha:

    God.transaction do
      puts mad.nil?    # mad is instance method of God and returns
BelongsToAssociation here
      if mad.nil?
        puts 'some thing exctue here'
        mad = you.mad # Ruby sees mad local variable definition
      end
      puts mad.nil?    # mad is unitialized local variable set to nil
    end

On Wed, Sep 15, 2010 at 5:22 PM, David Chelimsky <dchelimsky at gmail.com> wrote:
> On Wed, Sep 15, 2010 at 3:19 AM, Zhenning Guan <lists at ruby-forum.com> wrote:
>> class User
>>  has_many :mads
>>
>>  def mad
>>    Mad.find_by_user_id(id)
>>  end
>> end
>>
>> class God
>>  belongs_to :mad
>>  belongs_to :user
>>  belongs_to :sender, :class_name => "User", :foreign_key => "sender_id"
>>
>>  def strange_change!
>>    God.transaction do
>>      puts mad.nil?    #the first time put is false
>>      if mad.nil?
>>        puts 'some thing exctue here'           #no puts anything
>>        mad = you.mad
>>      end
>>      puts mad.nil?    #the second time put is true
>>    end
>>  end
>> end
>>
>> why the mad will become nil?
>
> Seems like a Rails question, not an RSpec question. Please post Rails
> questions to http://groups.google.com/group/rubyonrails-talk.
>
> Cheers,
> David
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list