What is the difference between t.belongs_to and t.references in rails? What is the difference between t.belongs_to and t.references in rails? ruby-on-rails ruby-on-rails

What is the difference between t.belongs_to and t.references in rails?


Looking at the source code, they do the same exact thing -- belongs_to is an alias of reference:

  def references(*args)    options = args.extract_options!    polymorphic = options.delete(:polymorphic)    args.each do |col|      column("#{col}_id", :integer, options)      column("#{col}_type", :string, polymorphic.is_a?(Hash) ? polymorphic : options) unless polymorphic.nil?    end  end  alias :belongs_to :references

This is just a way of making your code more readable -- it's nice to be able to put belongs_to in your migrations when appropriate, and stick to references for other sorts of associations.