list = []
Merchant.all.each do |merchant|
if merchant.url.present? && merchant.url != merchant.api_data.url
list.push({
:id => merchant.id,
:name => merchant.name,
:another => merchant.another,
:another => merchant.another,
:another => merchant.another
})
end
end
是否有更简单的方法来创建该对象的某些字段的哈希?对不起,如果这太明显了。我正在从PHP过渡到Ruby。
答案 0 :(得分:4)
merchants = Merchant.all.map do |merchant|
if merchant.url.present? && merchant.url != merchant.api_data.url
merchant.attributes.slice("id", "name", "another")
end
end.compact
注意:
list
。为变量赋予有意义的名称。使用记录:
merchants = Merchant.all.select do |merchant|
merchant.url.present? && merchant.url != merchant.api_data.url
end
答案 1 :(得分:0)
您可以#reject
或#select
来自merchant.attributes
的所有不需要/需要的属性,以便它们可以添加到您的列表中。可能会看看reject method。虽然以你已经的方式添加属性并不罕见。
祝你好运
托拜厄斯