更新函数抛出错误(rails)

时间:2015-04-04 06:03:58

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

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

从此函数调用更新函数

  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

我得到的错误就是这个

请求/ bookmark_request上的NoMethodError

未定义的方法`空?请求:0x007f3fa44c59b0 **

如果request.update(req_data)

,错误总是出现在行上

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

1 个答案:

答案 0 :(得分:1)

update()方法的参数应该是一个哈希值。但是您的req_data参数实际上变为Request

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

并且Request类没有empty?方法。此外,如果根本没有请求,它可能会成为nil