我想在我的模型之间建立简单的has_many
和belongs_to
关系。
我有User
模型和Quote
模型。每个引用属于用户,evry用户有很多引号。
我研究了这个:http://guides.rubyonrails.org/association_basics.html
但我仍然不知道外键是什么。 Rails会在后台自动执行此操作(当我添加has_many
和belongs_to
时),还是应该添加user_id
列添加到Quotes
表的手动迁移?
我的user_id
中应该有db_schema
列吗?
答案 0 :(得分:1)
应在迁移中定义外键。如果您使用生成器,Rails将生成一个迁移,可能如下所示:
class CreateQuotes < ActiveRecord::Migration
def change
create_table :quotes do |t|
t.string :title, null: false
t.text :content, null: false
t.references :user
t.timestamps
end
end
end
语句t.references :user
将生成您的外键列,在这种情况下称为user_id
。
以下是Rails Guides:
的引用使用t.integer:supplier_id使外键命名明显且明确。在当前版本的Rails中,您可以使用t.references:supplier来抽象出这个实现细节。