Variable strange change

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?

On Wed, Sep 15, 2010 at 3:19 AM, Zhenning G. [email protected]
wrote:

belongs_to :user
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

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