Was ist der Unterschied zwischen t.references
und t.belongs_to
? Warum haben wir diese zwei verschiedenen Wörter? Mir scheint, sie machen das Gleiche? Versuchte einige Google-Suche, aber keine Erklärung zu finden.
class CreateFoos < ActiveRecord::Migration
def change
create_table :foos do |t|
t.references :bar
t.belongs_to :baz
# The two above seems to give similar results
t.belongs_to :fooable, :polymorphic => true
# I have not tried polymorphic with t.references
t.timestamps
end
end
end
ruby-on-rails
rails-migrations
Tornskaden
quelle
quelle
references
wird in einer zukünftigen Version von Schienen veraltet und entfernt. Nehmen Sie nicht mein Wort, es ist nur eine fundierte Vermutung.Antworten:
Wenn sie sich den Quellcode ansehen , tun sie genau das Gleiche -
belongs_to
ist ein Alias vonreference
:Dies ist nur eine Möglichkeit, Ihren Code besser lesbar zu machen. Es ist schön,
belongs_to
wenn Sie Ihre Migrationen gegebenenfalls einfügen und sich anreferences
andere Arten von Assoziationen halten können.quelle
references
ist eine mehrdeutige Wahl für einen Begriff. Sie umbenanntbefore_filter
zubefore_action
, was ein guter Schachzug war , weil es Mehrdeutigkeit reduziert. Ein Vorteil vonreferences
ist, dass es sich einfach von dem unterscheidet, was Sie im Modell verwenden, sodass Sie weniger verwirrt sind, wenn Sie sich im Modell oder in der Migration befinden. Jeder andere Begriff würde diese Kriterien erfüllen.references
ist ein besserer Begriff auf DB-Ebene.