我需要在数据库中的现有表中插入新记录。我尝试了以下两种方法:
class UserDetail < ActiveRecord::Base
def self.add_new_user
new_user = UserDetail.new
new_user.first_name = 'Joe'
new_user.last_name = 'Smith'
new_user.user_id = 'TEST'
new_user.save
end
def self.add_new_user_2
UserDetail.create(user_id: 'TEST', first_name: 'Joe',
last_name: 'Smith')
end
但是,这两种方法都给出了以下错误:
ActiveRecord::StatementInvalid: OCIError: ORA-00926:
missing VALUES keyword: INSERT INTO "USER_DETAIL" DEFAULT VALUES
我错过了什么?请分享您的解决方案。
(使用Ruby 1.9.3,ActiveRecord 4.2.4)
答案 0 :(得分:3)
ActiveRecord对主键进行假设。期望在UserDetail表上找到一个名为&#34; ID&#34;的主键。应该看起来像。
class UserDetail < ActiveRecord::Base
self.table_name = :user_detail
self.primary_key = :user_id
def self.add_new_user
new_user = UserDetail.new
new_user.first_name = 'Joe'
new_user.last_name = 'Smith'
new_user.user_id = 1
new_user.save
end
end