gpt4 book ai didi

ruby-on-rails - Activerecord 对象数组到逗号分隔的字符串

转载 作者:行者123 更新时间:2023-12-04 02:31:08 27 4
gpt4 key购买 nike

假设我有一个名为“Fruit”的模型,一个查询将所有不同的水果名称返回给@fruit:

  • !ruby/object:Fruit attributes: fruit_name: orange attributes_cache: {}

  • !ruby/object:Fruit attributes: fruit_name: apple attributes_cache: {}

  • !ruby/object:Fruit attributes: fruit_name: peach attributes_cache: {}



我明白(有点)@fruit 是一个由数组(activerecord 对象)组成的数组。我试图将返回的水果名称放入逗号分隔的字符串中,例如:“orange,apple,peach”。

如果数组由字符串或数字(而不是数组)组成,我知道我可以使用 map w/.join(',') 来做到这一点。我在引用数组中的数组(每个数组索引处的数组的“fruit_name”字段)所需的额外语法方面遇到问题。

我知道这会起作用,只是不确定如何将其作为动态迭代执行:

@fruit_string = @fruit[0].fruit_name + ',' + @fruit[1].fruit_name + ',' + @fruit[2].fruit_name

最佳答案

@fruit_string = @fruit.map { |f| f.fruit_name }.join ','

现在,当一个块由一个没有参数的方法调用组成时,并且出于某种复杂的原因,你可以这样写
@fruit_string = @fruit.map(&:fruit_name).join ','

1. 一元 & 运算符将 proc 转换为块,将块转换为 proc。如果操作数都不是,那么它首先调用 to_proc,如果可以的话。 (是的,Symbol 有一个 to_proc。)它比这更复杂,但这就是为什么它是 map 的一个很好的简洁补充的原因。

关于ruby-on-rails - Activerecord 对象数组到逗号分隔的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4840485/

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