Ruby on rails Rails:如何解决错误:ORA-02289:序列不存在错误?
我有一个名为“Carrier”的模型。在我的控制器中,当我执行Ruby on rails Rails:如何解决错误:ORA-02289:序列不存在错误?,ruby-on-rails,ruby,oracle,Ruby On Rails,Ruby,Oracle,我有一个名为“Carrier”的模型。在我的控制器中,当我执行Carrier.create(data)时,我得到以下错误: OCIError: ORA-02289: sequence does not exist: select carriers_seq.nextval id from dual 这是我在控制器中的代码: class CarriersController < ActionController::Base def index #stuff e
Carrier.create(data)
时,我得到以下错误:
OCIError: ORA-02289: sequence does not exist: select carriers_seq.nextval id from dual
这是我在控制器中的代码:
class CarriersController < ActionController::Base
def index
#stuff
end
def update
@params["carriers"].each do |id, data|
#data["id"]
if Carrier.exists?(data["id"])
carrier = Carrier.find(data["id"])
carrier.update_attributes(data)
else
Carrier.create(data)
end
end
redirect_to( :action => "index" )
end
end
class CarrierController“index”)
结束
结束
我在谷歌上搜索了一下,发现了两个关于解决方案的网页:
我应该把ActiveRecord的代码放在哪里?它应该在我的模型中运行吗
我的错误还有其他解决方案吗?我不知道ruby,但它肯定已经配置或编程为使用数据库序列载体。(序列有点像数字生成器) 在数据库中创建这个序列怎么样?尝试在Oracle SQL*Plus中执行以下语句:
create sequence CARRIERS_SEQ;
您还可以指定
self.sequence\u name
命令应使用的序列
示例:
CarriersController < ActionController::Base
self.sequence_name = 'seq_id'
end
CarriersController
如何禁用序列,我不想使用序列生成主键。我想自己管理它。