我遇到的问题是,当我调用更新函数时,它会抛出错误。我试图找到解决方案,但我找不到它,我无法解决错误。请告诉我代码有什么问题
从此函数调用更新函数
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
答案 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
。