我想在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/