Я везде искал похожую ошибку, но не мог найти решение, поэтому в отчаянии я публикую здесь.
Мой контроллер имеет это:
def add_upc
@upcs = Dvd.add_upc(params[:dogTag], params[:newUpc])
end
ив модели у нас есть:
def self.add_upc(dogTag, newUpc)
existingUpc = Dvd.find(dogTag).dvd_upc2title.find_by_upc(newUpc)
if existingUpc.nil?
createdUpc = Dvd.find(dogTag).dvd_upc2title.create(:upc => newUpc)
if createdUpc
upcs = createdUpc
else
upcs = 'Error: nothing was created'
end
end
end
Я настроил страницу просмотра, чтобы увидеть, что происходит, и я могу видеть объект, созданный созданным с помощью UPU.Я также могу подтвердить, что параметры dogTag и newUpc передаются правильно.Тем не менее, запись не добавляется в таблицу.
Странно, это работает, если я ввожу команду Dvd.find(dogTag).dvd_upc2title.create(:upc => newUpc)
со значениями, заменяемыми переменными из IRB.
Не могу понять, почему это не работает.Я новичок в Rails, поэтому не знаю, какие еще ошибки можно использовать, чтобы выяснить, в чем проблема.
Идеи приветствуются.
Спасибо.
Редактировать:
Обнаружил ошибку благодаря RyanWilcox, это была проверка, которую я настроил в контроллереза то, что UPC сказал мне, что значение уже существует (даже если предполагается, что UPC уникальны. Есть ли способ проверки по комбинации из 2 полей?