2015-04-04 37 views
0

我有一個問題,當我調用更新函數時會拋出一個錯誤。我試圖找到解決方案,但我不能找到它,我不能忽略錯誤。請告訴我什麼是錯的代碼更新函數拋出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 

,我得到的錯誤是這樣的

** NoMethodError at request/bookmark_request

未定義的方法`空?'對於請求:0x007f3fa44c59b0 **

錯誤總是就行了,如果request.update(REQ_DATA)

SICE我沒有10個那麼我張貼鏈接信譽錯誤的截圖 http://tinypic.com/r/whbiv7/8

回答

1

update()方法的參數預計會是一個散列。但是,你的req_data說法實際上成爲這裏Request

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

而且Request類沒有empty?方法。此外,如果根本沒有請求,它可能會變成nil

+0

你能告訴我怎樣才能糾正我。這將是一個很大的幫助 – Gardezi 2015-04-04 07:22:29

+0

在那裏,我可以傳遞一個完整的對象,該請求將根據傳遞的對象進行更新? – Gardezi 2015-04-04 07:31:46

+0

@james - 'request.update(req_data.attributes)' – 2015-04-04 08:07:23