Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 有很多实现需要外键吗?_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 有很多实现需要外键吗?

Ruby on rails 有很多实现需要外键吗?,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我想让简单的在我的模型之间有很多和属于的关系。 我有用户型号和报价型号。每个引号都属于用户,evry user有许多引号 我研究过这个: 但我还是不知道外键是怎么回事。Rails是在后台自动完成迁移的(当我添加有很多并且属于时),还是应该手动添加迁移,并将用户id列添加到报价表中? 在我的db\u模式中是否应该有user\u id列?外键应该在迁移中定义。如果使用生成器,Rails将生成一个迁移,可能如下所示: class CreateQuotes < ActiveRecord::Migr

我想让简单的
在我的模型之间有很多
属于
的关系。
我有
用户
型号和
报价
型号。每个引号都属于用户,evry user有许多引号

我研究过这个:

但我还是不知道外键是怎么回事。Rails是在后台自动完成迁移的(当我添加
有很多
并且
属于
时),还是应该手动添加迁移,并将
用户id
列添加到
报价表中?

在我的
db\u模式中是否应该有
user\u id
列?

外键应该在迁移中定义。如果使用生成器,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
class CreateQuotes
语句
t.references:user
将生成外键列,在本例中称为
user\u id

以下是一段引用自:

使用t.integer:supplier_id使外键命名变得明显和明确。在Rails的当前版本中,您可以使用t.references:supplier来抽象掉这个实现细节


不,Rails没有。但是在将报价模型迁移到数据库之前的迁移中,可以指定
t.integer:user_id
,以便将其视为外键