model可以保存,但在带有oracle-enhanced适配器的rails3中id为nil

时间:2010-10-13 09:31:31

标签: ruby-on-rails oracle

ruby 1.9.2 
rails 3.0.0 
ruby-oci 2.0.4
activerecord-oracle_enhanced-adapter 1.3.1
例如,

表名为users(id:number(38,0),name)

user = User.new
user.name ='test'
user.save! # is successful
user.id # got nil
user.name # got 'test'

在数据库中我有一个名为“USERS_SEQ”的序列并运行良好(nextval或currentval是正确的)

有什么问题?

2 个答案:

答案 0 :(得分:0)

您必须明确地将users_seq.nextval分配给user.id.这不是像在SQL Server中那样自动完成的。这不是Oracle中的自动增量列。

答案 1 :(得分:0)

也许您的表没有主键约束,因此oracle_enhanced适配器无法识别主键列?

请参阅http://groups.google.com/group/oracle-enhanced/browse_thread/thread/3cf18b86333752c5

上的讨论