📅  最后修改于: 2023-12-03 14:46:53.957000             🧑  作者: Mango
When building web applications, it is often necessary to associate records in different database tables. For example, a blog post might be associated with comments or authors.
In Rails, you can use the add_reference
method to create a foreign key in a database table that references another table. This method generates a migration that adds a new column to the current table with a foreign key that references the primary key of the referenced table.
The syntax for add_reference
is as follows:
add_reference :table_name, :referenced_table_name, :options
table_name
: The name of the table to add the reference to.referenced_table_name
: The name of the table to reference.options
: A hash of options, such as null
and index
.If we want to associate blog posts with authors, we can create a foreign key from the posts
table to the authors
table using the add_reference
method:
rails g migration AddAuthorToPosts author:references
This will generate the following migration:
class AddAuthorToPosts < ActiveRecord::Migration[6.1]
def change
add_reference :posts, :author, null: false, foreign_key: true
end
end
This migration adds a new column author_id
to the posts
table that references the id
column of the authors
table. The null: false
option specifies that the author_id
column cannot be NULL, and the foreign_key: true
option creates a foreign key constraint between the posts
and authors
tables.
The add_reference
method is a simple and powerful way to add foreign keys to your Rails database tables. It makes it easy to associate records in your application and helps ensure data integrity.