У чому різниця між t.references
і t.belongs_to
? Чому у нас є ці два різні слова? Мені здається, вони роблять те саме? Спробував якийсь пошук у Google, але не знайдіть пояснення.
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
1
Вони працюють так само - це така погана справа? посилання вставляє для вас стовпчик із іноземним ключем. Ви можете скористатися last_to замість цього, щоб зробити міграцію більш читаною. Детальнішу інформацію див. У розділі guides.rubyonrails.org/migrations.html .
—
muffinista
Не кажучи, що це погано. Просто заплутався, якщо вони працюють однаково чи різними способами, оскільки я не можу знайти жодної документації, яка б точно сказала, що вони працюють однаково. http://guides.rubyonrails.org/migrations.html з цього питання також не зрозуміло.
—
Tornskaden
Це, ймовірно, лише для зворотної сумісності, і
—
цегельник
references
буде видалено та видалено в майбутньому випуску рейок. Не сприймайте мого слова з цього приводу, це лише здогадка.
"Інший помічник називається посиланням (також доступний як last_to). У своїй найпростішій формі він просто додає певної читабельності" - з керівництва
—
muffinista
Також ось вихідний код - pripada_то - прямий псевдонім посилань github.com/rails/rails/blob/…
—
muffinista