gpt4 book ai didi

ruby on rails 将属性映射到特定列

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

@models.map(&:attributes)) 返回每列的哈希列表到它在数据库中的值

如何限制它以便仅返回特定列(例如,仅返回名称和 ID?)。

此外,如何将多个列组合成一个新的键 => 值对?例如,如果用户有 first_name 和 last_name,上面将返回

[{"first_name" => "foo", "last_name" => "bar"}] but I want it to be [{"name" => "foo bar"}]

我如何实现这种转变?谢谢!

最佳答案

对于第一部分(限制哈希中的属性):

@models.map {|model| model.attributes.slice(:id, :name)}

为了将多个属性组合成一个新属性,最简洁的方法通常是访问器方法:

class User < ActiveRecord::Base
def name
"#{first_name} #{last_name}"
end
end

然后在迭代期间手动构建哈希:

@models.map {|model| {:id => model.id, :name => model.name}}

如果您使用属性散列中的多个属性,您可以使用合并:

@models.map do |model|
model.attributes.slice(:id, :first_name, :last_name).merge(:name => model.name)
end

关于ruby on rails 将属性映射到特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6487648/

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