title: Differences between *, self.* and @* when referencing associations/attributes in Ruby/Rails Models/Controllers
body: <p>Assuming a Rails Model with persistent / non-persistent attributes, what is the best practice regarding referencing them? If you look at code publicly available, different patterns are used. </p>
  
  <p>For instance, if you have an association from one model to another. What is the difference between using <strong>self.association_name</strong> and <strong>@association_name?</strong>. What is the preferable way? </p>
  
  <p>Same as with non-persistent attributes defined with <strong>attr_accessor :attr</strong> in Models. You can reference them with both approaches, <strong>self.attr</strong> and <strong>@attr</strong>. What is the preferable way? </p>