更新函数抛出错误(rails)

update function throwing erro(rails)

我遇到一个问题,每当我调用更新函数时它都会抛出错误。我试图找到解决方案,但找不到,而且我无法理解错误。请告诉我代码有什么问题

从这个函数调用更新函数

  def bookmark_request
    data = params[:d]
    request_bookmarked = Request.getRequest(data)
    bookmarked_against_Request = Request.first
    request_bookmarked_2 = request_bookmarked
    bookmarked_against_Request_2 = bookmarked_against_Request

    if bookmarked_against_Request_2[:favourites]
      bookmarked_against_Request_2[:favourites] << bookmarked_against_Request[:id]
    else
      bookmarked_against_Request_2[:favourites] = Array.new
      bookmarked_against_Request_2[:favourites] << bookmarked_against_Request[:id]
    end


    Request.updateRequest(bookmarked_against_Request , bookmarked_against_Request_2)
    redirect_to :action => "active"
  end

更新码是这个

def updateRequest(request,req_data)
 if request.update(req_data)
  request
 end
end

我收到的错误是

**requests/bookmark_request

处的 NoMethodError

未定义方法“空?” Request:0x007f3fa44c59b0**

如果request.update(req_data)

总是出现错误

因为我没有 10 的声誉,所以我发布错误截图的链接 http://tinypic.com/r/whbiv7/8

update() 方法的参数应该是一个散列。但是你的 req_data 论点实际上变成了 Request 在这里:

def bookmark_request
 bookmarked_against_Request = Request.first
 ...
 bookmarked_against_Request_2 = bookmarked_against_Request
 ...
end

Requestclass没有empty?方法。此外,如果根本没有请求,它可能会变成 nil