我是否需要在Rails迁移中显式创建ID?

时间:2014-03-06 01:08:28

标签: ruby-on-rails ruby ruby-on-rails-3

我正在尝试确定Rails是否具有每个数据库条目的内置主键ID,或者在运行rails generate时是否必须明确定义id:integer等ID。到目前为止,我已经遇到了很多帖子,询问如何更改主键行为或如何创建多列索引,但没有说明Rails默认情况下如何处理主键,实际上它确实如此。

如果只是在运行id:integer时使用rails generate,是否还需要其他任何方法来确保将列用作主键?我已经看到:primary => true提到但很少解释为什么它包含在任何特定的例子中。通常它是处理上述多列索引的解释的一部分。

1 个答案:

答案 0 :(得分:5)

do not需要在迁移中明确定义列id,因为Rails会处理这个问题。对于您创建的每个表,Rails都会创建一个id:integer列作为主键。 Rails不会在migration fileschema.rb中显示,但您可以转到rails dbconsole并检查架构。