在Rails中管理没有id的表,可以使用以下方法:
在Rails中,默认的主键是自增的id字段,但是可以使用UUID作为主键。UUID是通用唯一标识符,是一种数字标识符,通常用于在分布式系统中识别唯一的实体。在Rails中,可以使用uuid
gem来生成UUID。
首先,在Gemfile中添加uuid
gem:
gem 'uuid'
然后,在模型中使用UUID
作为主键:
class User< ApplicationRecord
self.primary_key = 'uuid'
end
在数据库迁移文件中,将主键设置为UUID:
class CreateUsers< ActiveRecord::Migration[6.1]
def change
create_table :users, id: :uuid do |t|
t.string :name
t.timestamps
end
end
end
如果不想使用UUID作为主键,可以使用其他字段作为主键。例如,如果有一个名为email
的字段,可以将其设置为主键。
在数据库迁移文件中,将主键设置为email
字段:
class CreateUsers< ActiveRecord::Migration[6.1]
def change
create_table :users, primary_key: :email do |t|
t.string :email
t.string :name
t.timestamps
end
end
end
在模型中,将email
字段设置为主键:
class User< ApplicationRecord
self.primary_key = 'email'
end
这样,在Rails中管理没有id的表时,可以使用UUID或其他字段作为主键。
领取专属 10元无门槛券
手把手带您无忧上云