ruby-on-rails - 生成一个以字符串字段为主键的模型

标签 ruby-on-rails model rails-activerecord primary-key

我想在Ruby on Rails应用程序中创建User模型。

我使用以下命令:

rails generate model User email:string name:string role:string

是否可以使用此命令将email定义为主键?还是必须修改使用此命令创建的数据库迁移文件?如何?

最佳答案

不,你不能。默认情况下,主键是一个自动递增的整数。

但是,您可以打开从命令生成的迁移,并进行更改(在运行rake db:migrate命令之前)。迁移可能会有一个create_table命令:

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      # ...
    end
  end
end

如果阅读 create_table 文档,您会注意到可以传递两个选项。具体来说,您需要将:id设置为false以不生成id字段,并且需要指定主键字段的名称。
    create_table :users, id: false, primary_key: :email do |t|

关于ruby-on-rails - 生成一个以字符串字段为主键的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34559362/

相关文章:

ruby-on-rails - rails : update_attributes not updating all attributes

ruby-on-rails - 在 Rails 电子商务应用程序中添加自定义统一运费

ruby-on-rails - 如何从 LinkedIn 解析 Mash 以创建 Ruby 对象

ruby-on-rails - 在 Rails 中实现完全匿名

python - 我什么时候应该在 Django 中使用 user.get_profile?

ios - 我有一个模型,其中我得到一个键值 nil 但数据来自 json 响应是完美的

ruby-on-rails - 验证 Rails ActiveRecord 中的 bool 字段

ruby - 在没有 Rails 的情况下使用 RSpec 加载 ActiveRecord fixtures

java - Spring Mvc在Jsp中显示来自多个List的数据

ruby-on-rails - Rails - 嵌套包含在事件记录上?