我有一个模型,我使用字符串作为主键:
class Employee < ActiveRecord::Base
self.primary_key = "employment_id"
end
此表还包含Rails默认的“id”字段,具有唯一性约束。
当我在本地添加新员工时,一切正常,Rails会自动生成一个新的唯一ID。
然而,当我在Heroku Postgres上运行它时,似乎将'id'和'employment_id'视为同一个字段。我尝试通过手动设置唯一ID来解决这个问题,但仍然会出现这种情况:
Employee.new do |s|
max_id = Employee.maximum(:id)
puts max_id.to_s # => 1803
s.employment_id = "fred_01"
s.id = max_id + 1
puts employment_id.to_s # => 1804
end
我在本地运行postgres 9.1.3(Heroku在9.1.4上运行)。我在Rails 3.2.3上。
知道可能会发生什么吗?我有一个想法就是摆脱'id'专栏,现在已经多余,但我担心会有更多的痛苦。你会提出什么建议?