Ruby:将空数组添加到字典中

时间:2014-07-11 19:42:17

标签: ruby-on-rails ruby arrays database dictionary

我正在尝试在字典中创建一个数组,如下所示。

我想拥有什么:

"Message": {
            [    
               "0": "This is a message"
            ]  
           }

我现在拥有的:

"Message": {
               "0": ["This is a message"
               ]
           }

我使用以下代码初始化Message字典及其中的数组。

  if not_found
    convoNum = 0
    arrayIndex = 0
    sessions["total"] = (sessions["total"].to_i + 1).to_s
    sessions["users"]["#{sessions["total"]}"] = {"arrayIndex"=>"#{arrayIndex}", "convoNum"=>"0"}
    sessions["users"]["#{sessions["total"]}"]["Message"] = {}
    sessions["users"]["#{sessions["total"]}"]["Message"][sessions["users"]["#{sessions["total"]}"]["Message"].length] = []
  end

我在渲染我想要的布局时遇到了麻烦。简单地添加sessions["users"]["#{sessions["total"]}"]["Message"] = {[]}会导致我的数据库在启动时崩溃。任何帮助进入第一个布局都将不胜感激。

2 个答案:

答案 0 :(得分:1)

当你这样说时:

{
  [    
     "0": "This is a message"
  ]  
}

这不是有效的Ruby。你将一个键/值对放在一个数组中,这没有任何意义。

答案 1 :(得分:1)

你不能拥有(数组不能有键值对)

"Message": {
            [    
               "0": "This is a message"
            ]  
           }

你可以拥有

"Message": {
               "0": "This is a message",
               "1": "Next message"
           }

您可以像这样初始化

sessions["users"]["#{sessions["total"]}"]["Message"] = {}

添加

等值
sessions["users"]["#{sessions["total"]}"]["Message"]["0"] = "This is a message"
相关问题