0

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

4

2 回答 2

1

将 ActiveRecord 3.1 与 Rails 2.3.4 一起使用的任何原因。虽然可以使用,但不推荐。

ActiveRecord::RecordNotUnique仅适用于 3.0 或更高版本。我不确定是否使用您的 Rails 版本正确初始化了 activerecord 模块。

于 2011-08-31T05:18:00.470 回答
0

当 ActiveRecord 在索引说值需要唯一时尝试保存副本时,会返回该错误。在您的情况下,该值Baby Ruth-49696852是重复的,并且违反了uni_products设置为唯一的键。

要么使列不唯一,要么停止尝试保存重复记录。您是否在迁移中创建了数据库索引?您的迁移中是否有:unique => true任何列?

于 2012-06-12T16:40:33.310 回答