2015-04-05 60 views
0

我試圖保存書籤變量中的數據,但它拋出了標題中描述的錯誤。請告訴我我做錯了什麼我無法理解錯誤。Rails沒有隱式將Symbol轉換爲Integer(rails)

bookmarks = Bookmark.where(request_id: bookmarked_against_Request[:_id]) 
    if bookmarks 
      bookmarks[:corsponding_requests] << request_bookmarked[:id] 
    else 
     bookmarks_new = Hash.new 
     bookmarks["owner_req"] = session[:user] 
     bookmarks["request_id"] = data 
     bookmarks["corsponding_requests"] = Array.new 
     bookmarks["corsponding_requests"] << request_bookmarked[:_id] 
     Bookmark.createBookmark(bookmarks) 
    end 

rails error http://i59.tinypic.com/290r8ft.png

PS: - 我已經改變了書籤BOOKMARKS_NEW在else塊,但它仍然拋出同樣的錯誤

+0

你可以嘗試我的解決方案,希望它會有所幫助。 – 2015-04-05 07:45:29

+0

請不要在問題中放置文字圖像。相反,把文本本身。閱讀和處理文本更好。 – 2015-04-06 16:45:23

+0

沒有文字的圖像@WayneConrad – Gardezi 2015-04-07 08:56:12

回答

1

試試這個:

bookmarks = Bookmark.where(request_id: bookmarked_against_Request[:_id]) 

if bookmarks 
    bookmarks.each { |bookmark| bookmark.update_attributes(corsponding_requests: request_bookmarked[:id] }  
else 
    bookmark = Hash.new 
    bookmark["owner_req"] = session[:user] 
    bookmark["request_id"] = data 
    bookmark["corsponding_requests"] = Array.new 
    bookmark["corsponding_requests"] << request_bookmarked[:_id] 
    Bookmark.createBookmark(bookmark) 
end 
+0

感謝它的工作 – Gardezi 2015-04-05 08:57:03

+0

@james,所以它實際上並沒有工作? :) – 2015-04-07 10:23:29

+0

好吧,它再次開始給我錯誤,現在我只是發現了什麼是真正的錯誤 – Gardezi 2015-04-07 19:16:08

1

你可以想像bookmarks像陣列,當你嘗試bookmarks[:corsponding_requests]紅寶石「想」,你想通過整數索引訪問數組元素(例如像bookmarks[1]),但它不能將符號轉換爲整數並拋出錯誤。也許,它可以幫助你...

+0

即使我得到一個元素,由於在哪裏條件? 書籤仍然會被視爲一個數組嗎? – Gardezi 2015-04-05 08:09:30

+0

是的,'哪裏'返回數組。你可以使用'Bookmark.where(request_id:bookmarked_against_Request [:_ id])。first'來獲得一個元素 – 2015-04-05 08:30:23

+0

哦,我明白我做錯了什麼 – Gardezi 2015-04-05 08:58:30

相關問題