title: Setting attribute from model without using self doesn't work
body: <p>Device model has following attributes: name, version and full_name</p>
  
  <p>Full name is name + version:</p>
  
  <pre><code>class Device &lt; ActiveRecord::Base
    def prepare
      full_name = (!show_version || version.nil?)? name : name + " " + version.to_s
    end
  end
  </code></pre>
  
  <p>When i do following:</p>
  
  <pre><code>d = Device.new :name =&gt; "iPhone", :version =&gt; "4"
  d.prepare
  d.full_name # get nil
  </code></pre>
  
  <p>I get nil for "full_name" attribute</p>
  
  <p>When I'm using "self", it works:</p>
  
  <pre><code>class Device &lt; ActiveRecord::Base
    def prepare
      self.full_name = (!show_version || version.nil?)? name : name + " " + version.to_s
    end
  end
  </code></pre>
  
  <p>Doing "prepare" i get "iPhone 4" for "full_name" attribute.</p>
  
  <p>Some people here told me, that it's a good manner to avoid using "self" inside class methods.
  But this brings trouble.</p>
  
  <p>The question is - why it does't works without using "self" ?</p>