请记住,在回答这个问题时,我对 Rails 完全陌生。我的问题如下:
我有一个 .find 查询的结果数组。该数组被传递给视图并显示每个项目。但是,在传递它之前,我需要向每个 Array 元素添加信息。如果每个元素都是一个数组,我可以使用 <<,如果它是一个哈希,我可以使用 .merge,但由于我不知道它是什么,我不知道如何添加信息.....
希望你能帮我!
请记住,在回答这个问题时,我对 Rails 完全陌生。我的问题如下:
我有一个 .find 查询的结果数组。该数组被传递给视图并显示每个项目。但是,在传递它之前,我需要向每个 Array 元素添加信息。如果每个元素都是一个数组,我可以使用 <<,如果它是一个哈希,我可以使用 .merge,但由于我不知道它是什么,我不知道如何添加信息.....
希望你能帮我!
好的,您的评论稍微澄清了一点。当你这样做时,User.find(n)
你会得到一个user
对象。如果你做类似的事情,User.find(1, 2, 3)
那么你会得到一个对象数组user
。因此,动态添加可能不是一个理想的解决方案。
但这里有一个 hacky 方法来做到这一点
users = User.find(1, 2, 3)
modified_users = users.map { |user| Array(user) << "some value tacked on" }
这会将您的user
对象转换为数组,然后为其附加一个值。不推荐,但它会满足你的要求。
你可以找出它们是什么......只是 puts results.class
如果您不想弄乱数组中的对象,您可以创建一个包含您添加的信息的数组或散列。
results.map do |r|
Hash[result: r, info: "your information here"]
end