1

我的数组包含不同数量的对象。我需要遍历数组并将每个对象保存id为唯一变量。鉴于数组中的对象数量会有所不同,我应该怎么做?

"items"=>[{"id"=>"B00668BTCI"}, {"id"=>"B0041KJSL2"}]

我需要将信息保存到一个最多可支持 16 个 ID 的新对象中。@object.id_one、@object.id_two 等等……

4

2 回答 2

3

保存数据的合适方式完全取决于您希望如何引用它或稍后访问它。元编程很有趣也很有趣,但根据您的需要可能会有点过分。您需要在查看选项后确定。另一种方法是在数组中:

array_of_ids = items.map(&:values).flatten

或者

array_of_ids = items.map { |item| item["id"] }

然后所有 ID 都在数组中array_of_ids,并在您的示例中变为:

["B00668BTCI", "B0041KJSL2"]

可通过以下方式访问:

array_of_ids[0]  # first id
array_of_ids[1]  # second array
...
于 2013-09-09T18:57:39.210 回答
1

你需要在这里做一些元编程......
这是给你的帖子,它有一个答案(Chirantan),展示了如何动态创建实例变量。

希望这可以帮助。

编辑
如果您有兴趣了解更多信息,我还找到了一篇关于动态创建方法的好文章,请查看。

Ryan Angilly 在 Ruby 中动态添加类方法

于 2013-09-09T18:56:11.890 回答