Y a-t-il une différence entre l'utilisation de t.references
et en exécutant SQL
pour créer une relation de clé étrangère entre products
y category
comme indiqué ci-dessous ? En d'autres termes, s'agit-il de deux façons différentes de faire la même chose ou est-ce que je manque quelque chose ?
class ExampleMigration < ActiveRecord::Migration
def up
create_table :products do |t|
t.references :category
end
#add a foreign key
execute <<-SQL
ALTER TABLE products
ADD CONSTRAINT fk_products_categories
FOREIGN KEY (category_id)
REFERENCES categories(id)
SQL
add_column :users, :home_page_url, :string
rename_column :users, :email, :email_address
end
def down
rename_column :users, :email_address, :email
remove_column :users, :home_page_url
execute <<-SQL
ALTER TABLE products
DROP FOREIGN KEY fk_products_categories
SQL
drop_table :products
end
end