Не удалось найти GaBadge с 'id' = 3

ruby-on-rails ruby ruby-on-rails-4

44 просмотра

3 ответа

1 Репутация автора

Я получаю эту ошибку, не могу найти идентификатор с id = '' Я не знаю, как это исправить, если кто-нибудь знает, как это исправить, пожалуйста, сообщите мне

@req2 = ActiveSupport::JSON.decode(@req)
  #@req3 = JSON.parse(@req2)

  #@reqId = @req3
  @reqId = @req2[0]
  @req3 = JSON.parse(@reqId)

  @req3.each do |item|
    @id = item['id']
    @id = GaBadge.find(@id)
    if @id.present?
      @id.destroy
    end
    #@obj = @id.destroy
  end
Автор: Waleed bin khalid Источник Размещён: 18.07.2016 11:27

Ответы (3)


0 плюса

1040 Репутация автора

Ошибка говорит о том, что в таблице GaBadge нет записей с id = 3, используйте

GaBadge.find_by_id(@id)

он вернет ноль вместо ошибки. Измените ваш цикл на

  @req3.each do |item|
    @id = item['id']
    @ga_badge = GaBadge.find_by_id(@id.to_i)
    unless @ga_badge.nil?
      @ga_badge.destroy
    end
  end
Автор: power Размещён: 18.07.2016 11:29

0 плюса

618 Репутация автора

Я думаю, вы присваиваете значение @id в виде строки. Просто попробуй это,

@id = GaBadge.find_by_id(@id.to_i)
Автор: Navin Размещён: 18.07.2016 11:35

0 плюса

1 Репутация автора

Решение

я добавляю .int и исправляю @ req3.each do | item | @id = item ['id'] @ga_badge = GaBadge.find_by_id (@ id.to_i), если не @ ga_badge.nil? @ ga_badge.destroy end end

Автор: Waleed bin khalid Размещён: 14.08.2016 10:17
Вопросы из категории :
32x32