我正在创建一个与旧 SQL 数据库通信的 Rails 应用程序,我需要设置 primary_key。
最初我是这样做的:
class Post < ActiveRecord::Base
attr_accessible :body, :title, :incrementer_id
self.primary_key = "incrementer_id"
before_create :next_seq, on: :create
private
def next_seq
p = Post.last
self.incrementer_id = p.blank? ? 1 : (p.incrementer_id.to_i + 1)
end
end
我需要创建 next_seq 因为 Rails 不会自动增加“incrementer_id”。
我不得不制作三元,因为第一项的 incrementer_id 是 nil 并且它给出了错误。我很想避免每次都做这个检查。
我想知道是否有最佳方法来执行 next_seq。更好的是,使其与数据库类型无关。