【发布时间】:2012-05-18 13:35:25
【问题描述】:
将以下 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\"]"]
我确信一定有一些明显的方法可以解决这个问题。
为清楚起见,这将在表单中的 textarea 字段中进行编辑,因此应尽可能安全。
【问题讨论】:
-
最好的办法是修改
ingredients方法。 -
如果你不能改变配料方法,你至少应该把它贴出来,这样我们就可以看到它的输出了。覆盖它当然是一种选择,但我们必须看到它才能提供帮助。
标签: ruby-on-rails ruby arrays string