未初始化的常量ActiveRecord :: RecordNotUnique

时间:2011-08-31 05:09:07

标签: activerecord shopify

我使用的是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”。任何帮助,将不胜感激。谢谢。

2 个答案:

答案 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吗?