gpt4 book ai didi

ruby-on-rails - 如何将此 Ruby 字符串转换为数组?

转载 作者:数据小太阳 更新时间:2023-10-29 07:09:53 25 4
gpt4 key购买 nike

将以下 Ruby 字符串转换为数组的最佳方法是什么(我使用的是 ruby​​ 1.9.2/Rails 3.0.11)

Rails 控制台:

>Item.first.ingredients
=> "[\"Bread, whole wheat, 100%, slice\", \"Egg Substitute\", \"new, Eggs, scrambled\"]"
>Item.first.ingredients.class.name
=> "String"
>Item.first.ingredients.length
77

期望的输出:

>Item.first.ingredients_a
["Bread, whole wheat, 100%, slice", "Egg Substitute", "new, Eggs, scrambled"]
>Item.first.ingredients_a.class.name
=> "Array
>Item.first.ingredients_a.length
=> 3

如果我这样做,例如:

>Array(Choice.first.ingredients)

我明白了:

=> ["[\"Bread, whole wheat, 100%, slice\", \"Egg Substitute\", \"new, Eggs, scrambled\", \"Oats, rolled, old fashioned\", \"Syrup, pancake\", \"Water, tap\", \"Oil, olive blend\", \"Spice, cinnamon, ground\", \"Seeds, sunflower, kernels, dried\", \"Flavor, vanilla extract\", \"Honey, strained/extracted\", \"Raisins, seedless\", \"Cranberries, dried, swtnd\", \"Spice, ginger, ground\", \"Flour, whole wheat\"]"] 

我确信一定有一些明显的方法可以解决这个问题。

为清楚起见,这将在表单的文本区域字段中进行编辑,因此应尽可能安全。

最佳答案

你得到的看起来像 JSON,所以你可以这样做:

JSON.parse "[\"Bread, whole wheat, 100%, slice\", \"Egg Substitute\", \"new, Eggs, scrambled\"]"
#=> ["Bread, whole wheat, 100%, slice", "Egg Substitute", "new, Eggs, scrambled"]

这避免了很多使用 eval 的恐惧。

尽管您首先应该真正考虑为什么要这样存储数据,并考虑更改它,这样您就不必这样做了。此外,您可能应该将其解析为 ingredients 中的数组,以便该方法返回更有意义的内容。如果您几乎总是对方法的返回值执行相同的操作,则该方法是错误的。

关于ruby-on-rails - 如何将此 Ruby 字符串转换为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10526219/

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