Ответ 1
Глядя на исходный код, они делают то же самое - belongs_to
является псевдонимом 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
Это всего лишь способ сделать ваш код более читабельным - приятно иметь возможность переносить belongs_to
в ваши миграции, когда это необходимо, и придерживаться references
для других видов ассоциаций.