ruby-on-rails - 如何采摘然后连接数组中的最后两个
问题描述
我没有得到预期的结果。Pluck返回一个数组,为什么.last
不起作用?
这是一个没有实际示例数据的示例:
Model.all.map { |obj| {name: obj.name, accounts: obj.accounts.pluck(:id, :code, :name) }
# Returns:
[
{name: "Stock", accounts: ["12345", "090", "Imports 2%"], [...] },
{...}
],
[...]
我实际上在做什么:
Model.all.map { |obj| {name: obj.name, accounts: obj.accounts.pluck(:id, :code, :name).last(2).join('-') }
# Returns
[
{name: "Stock", accounts: "12345-090-Imports 2%"},
{...}
],
[...]
我预计:
[
{name: "Stock", accounts: ["12345", "090-Imports 2%"], [...]},
{...}
],
[...]
我究竟做错了什么?
解决方案
Model.all.map do |obj|
accounts = obj.accounts.pluck(:id, :code, :name).map { |id, code, name| [id, "#{code}-#{name}"] }
{
name: obj.name,
accounts: accounts
}
end
但应该优化