क्या t.references
का उपयोग करने और SQL
कमांड के बीच products
और category
तालिका के बीच विदेशी कुंजी संबंध बनाने के लिए कोई अंतर है? दूसरे शब्दों में, क्या वही काम करने के दो अलग-अलग तरीके हैं या क्या मुझे यहां कुछ याद आ रही है?रेलों में विदेशी कुंजी बाधा और संदर्भों के बीच अंतर
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
रेल 4.2 अब उन एडाप्टर के लिए विदेशी कुंजी बाधाओं का समर्थन करता है जो उनका समर्थन करते हैं: http://edgeguides.rubyonrails.org/4_2_release_notes.html#foreign-key-support –