找不到'id'= 3的GaBadge

时间:2016-07-18 11:27:14

标签: ruby-on-rails ruby ruby-on-rails-4

我收到此错误无法找到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

3 个答案:

答案 0 :(得分:0)

错误说GaBadge的表没有id = 3的任何记录,请使用

GaBadge.find_by_id(@id)

它将返回nil而不是error。 将你的循环改为

  @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

答案 1 :(得分:0)

我认为,您将@id的值赋给字符串。 试试吧,

@id = GaBadge.find_by_id(@id.to_i)

答案 2 :(得分:0)

我添加.int并修复  @ req3.each do | item |     @id = item [' id']     @ga_badge = GaBadge.find_by_id(@ id.to_i)     除非@ ga_badge.nil?       @ ga_badge.destroy     结束   端