古い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
Railsは'incrementer_id'を自動的に増加させないため、next_seqを作成する必要がありました。
最初のアイテムのincrementer_idがnilであり、エラーが発生していたため、3項を作成する必要がありました。毎回このチェックをする必要はありません。
next_seqを実行する最適な方法があるかどうか疑問に思います。さらに良いことに、データベースタイプに依存しないようにします。