使用 Active Record 时可以将 ID 更改为字符串吗?

Ada*_*Lee 1 ruby ruby-on-rails

看起来默认的 :id 是整数,我可以将其设置为字符串吗?

Cyz*_*far 6

是的你可以。

首先运行迁移:

create_table 'table' id: false, force: true do |t|
  t.string 'id', null: false
end
Run Code Online (Sandbox Code Playgroud)

string指定id 的类型。

然后在你的模型中:

class Table < ActiveRecord::Base
  self.primary_key = :id
end
Run Code Online (Sandbox Code Playgroud)

这基本上会明确表明该字符串id是对象实例的主键。