【问题标题】:Rails no implicit conversion of Symbol into Integer(rails)Rails没有将符号隐式转换为整数(rails)
【发布时间】:2015-04-05 07:29:31
【问题描述】:

我正在尝试将数据保存在书签变量中,但它引发了标题中描述的错误。请告诉我我做错了什么,我无法理解错误。

  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

PS:- 我已在 ELSE 块中将 BOOKMARKS_NEW 更改为 BOOKMARKS_NEW,但仍然抛出相同的错误

【问题讨论】:

  • 你可以试试我的解决方案,希望对你有帮助。
  • 请不要将文字图片放在问题中。相反,把文本本身。作为文本阅读和使用会更好。
  • @WayneConrad 里面没有文字图片
  • ![rails error](http://i59.tinypic.com/290r8ft.png)
  • 哦,我真的很抱歉,当我打开这个页面时,图片没有加载我真的很抱歉

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


【解决方案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

【讨论】:

  • 好吧,它又开始给我错误,现在我才发现真正的错误是什么
  • 很高兴您发现了错误。是什么问题以及您尝试解决的问题?
  • 在模型中,数据类型不正确,而不是数组,我写了 Aray,现在我完全出了什么问题,你的解决方案帮助了我。谢谢
【解决方案2】:

你可以想象bookmarks 像数组,当你尝试bookmarks[:corsponding_requests] ruby​​ "think" 时,你想通过整数索引访问数组元素(例如bookmarks[1]),但它不能将符号转换为整数并抛出错误。也许,它可以帮助你...

【讨论】:

  • 即使我由于 where 条件而得到一个元素?书签还会被视为数组吗?
  • 是的,where 返回数组。您可以使用Bookmark.where(request_id: bookmarked_against_Request[:_id]).first 获取一个元素
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-19
  • 2023-03-20
  • 1970-01-01
  • 2020-04-03
  • 1970-01-01
相关资源
最近更新 更多