假设我有一个名为"Fruit"的模型,并且查询将所有不同的水果名称返回给@fruit:
!ruby/object:Fruit属性:fruit_name:orange attributes_cache:{}
!ruby/object:Fruit属性:fruit_name:apple attributes_cache:{}
!ruby/object:Fruit属性: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
Dig*_*oss 30
@fruit_string = @fruit.map { |f| f.fruit_name }.join ','
Run Code Online (Sandbox Code Playgroud)
现在,当一个块由不带任何参数,并且有点复杂的方法调用的1倍的原因,你可以把它写像
@fruit_string = @fruit.map(&:fruit_name).join ','
Run Code Online (Sandbox Code Playgroud)
Tob*_*ede 17
或者使用proc简写:
@fruit_string = @fruit.map(&:fruit_name).join(',')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9907 次 |
| 最近记录: |