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

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

我正在尝试确定 Rails 是否为每个数据库条目都有一个内置的主键 ID,或者在运行 rails generate 时我是否必须显式定义一个 ID,例如 id :整数。到目前为止,我已经看到很多帖子询问如何更改主键行为或如何创建多列索引,但没有说明 Rails 默认情况下如何处理主键(如果确实如此的话)。

如果只是在运行 rails generate 时使用 id:integer 是否还有其他必要的东西来确保将列用作主键?我见过 :primary => true 被提及但很少解释为什么它包含在任何特定示例中。通常它是处理上述多列索引的解释的一部分。

最佳答案

不需要在迁移中显式定义列id,因为Rails 会处理这件事。对于您创建的每个表,Rails 都会创建一个 id:integer 列作为主键。 Rails 不会在迁移文件schema.rb 中显示它,但您可以转到rails dbconsole 并检查架构。

关于ruby-on-rails - 我是否需要在 Rails 迁移中显式创建 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22212801/

相关文章:

ruby-on-rails - Accepts_nested_attributes_for和collection_select如何构建 View ?

sql - Rails 查询仅在所有 has_many 关联均为 `true` 的情况下选择父记录

javascript - AJAX 调用以在 Rails 3 中呈现部分

ruby-on-rails - rails 4 : replace/delete uploaded file in edit view form

javascript - Rails after_filter 获取 javascript 和样式表值

ruby-on-rails - 如何通过rake任务传递-f specdoc选项

ruby-on-rails - 使用给定对象在数据库中查找下一个 ActiveRecord 模型对象

ruby-on-rails - Ruby On Rails 子域约定

ruby-on-rails-3 - 如何在 action_mailer.default_url_options 中使用 https 定义主机

android - 为什么此 CSS 不适用于 Android 上的 Chrome,但适用于其他地方?