我使用的是rails 2.3.4,rubygems 1.3.6,activerecord 3.1.0,windows 7 home basic
这是我的代码:
def items
@products = ShopifyAPI::Product.find(:all)
@products.each do |a|
begin
@shop = Product.new(:title => a.title , :shop_id => a.id, :product_type => a.product_type)
@shop.save
rescue ActiveRecord::RecordNotUnique
redirect_to :action => "display_items"
end
end
@shop_items =Product.find(:all)
if session[:user_id]
@log = "Welcome Administrator!"
@logout="logout"
else
@log = "Admin Log in"
@logout=""
end
end
我在尝试保存API提供的数据时遇到错误“未初始化的常量ActiveRecord :: RecordNotUnique”。任何帮助,将不胜感激。谢谢。
答案 0 :(得分:1)
使用ActiveRecord 3.1和Rails 2.3.4的任何原因。虽然可以使用它,但不推荐使用。
ActiveRecord::RecordNotUnique
仅适用于3.0或更高版本。我不确定是否使用您的Rails版本正确初始化了activerecord模块。
答案 1 :(得分:0)
当索引表示值必须唯一时,ActiveRecord尝试保存副本时会返回该错误。在您的情况下,值Baby Ruth-49696852
是重复的,并且违反了uni_products
密钥,该密钥设置为唯一。
使列不唯一,或者停止尝试保存重复记录。您是否在迁移中创建了数据库索引?迁移中的任何列都有:unique => true
吗?