gpt4 book ai didi

ruby-on-rails - rails 上的 ruby : Extracting multidimensional array from JSON to a corresponding model

转载 作者:太空宇宙 更新时间:2023-11-03 16:26:49 25 4
gpt4 key购买 nike

我正在处理具有如下结构的 JSON:

 "meals" {"en": [
["Monday chicken sticks","Monday mozzarella salad"],
[ "Tuesday schnitzel", "Tuesday soup"],
[ "Spaghetti à la Wednesday"],
["Thursday salmon"],
["Curry of Friday"],
["Saturday sausages"]}
]

所以“en”数组的索引对应于一周中的几天,内部数组对应于当天的菜单。

现在我的问题是我正在尝试将数据作为序列化数组保存到数据库中。我可以手动执行此操作,但在解析 JSON 时不行。我的代码看起来像这样:

@meal = Meal.new #Meal is a model that contains the array
#item is HTTParty response object
@meal.en = item["meals"]["en"] #this is where program crashes: undefined method `[]' for nil:NilClass
@meal.save

我想我处理作业的方式有误,或者一开始就无法完成。有没有解决这个问题的方法,或者我应该使用包含当天菜单的单维数组制作几天的模型?

最佳答案

所以你想在你的数据库中保存数组?

如果您执行 item["meals"]["en"],您将在星期一有两个条目 - 这是如何工作的?您需要能够为模型的每个属性提供一个条目,如下所示:

 "meals":
{"en":
{
"Monday": ["chicken sticks", "mozzarella salad"],
"Tuesday": ["schnitzel", "soup"],
"Wednesday": ["spaghetti"],
"Thursday": ["salmon"],
"Friday": ["curry"],
"Saturday": ["sausages"]
}
}

如果您像这样构建 JSON,它将允许您保存到数据库的不同属性中。然后我会像这样设置我的表:

meals
id
name

menu
id
day

meals_menus
meal_id
menu_id

这将允许您将一顿饭保存为chicken sticks,并将其分配给星期一。你会像这样设置你的模型:

#app/models/meal.rb
Class Meal < ActiveRecord::Base
has_and_belongs_to_many :menus
end

#app/models/menu.rb
Class Menu < ActiveRecord::Base
has_and_belongs_to_many :meals
end

关于ruby-on-rails - rails 上的 ruby : Extracting multidimensional array from JSON to a corresponding model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23537563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com