неинициализированная константа ActiveRecord :: RecordNotUnique - PullRequest
0 голосов
/ 31 августа 2011

Я использую рельсы 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

У меня ошибка"неинициализированная константа ActiveRecord :: RecordNotUnique" при попытке сохранить данные, передаваемые API.Любая помощь будет оценена.спасибо.

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Любая причина, по которой вы используете ActiveRecord 3.1 с Rails 2.3.4.Хотя это можно использовать, это не рекомендуется.

ActiveRecord::RecordNotUnique доступно только с версиями 3.0 или выше.Я не уверен, правильно ли инициализируются модули activerecord с вашей версией Rails.

0 голосов
/ 12 июня 2012

Эта ошибка возвращается, когда ActiveRecord пытается сохранить дубликат, когда индекс говорит, что значения должны быть уникальными.В вашем случае значение Baby Ruth-49696852 является дублированием и нарушает ключ uni_products, который установлен как уникальный.

Либо сделайте столбец не уникальным, либо прекратите попытки сохранить дублирующиеся записи.Вы создали свои индексы базы данных в своих миграциях?Есть ли :unique => true на любом из столбцов в ваших миграциях?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...