0

请记住,在回答这个问题时,我对 Rails 完全陌生。我的问题如下:

我有一个 .find 查询的结果数组。该数组被传递给视图并显示每个项目。但是,在传递它之前,我需要向每个 Array 元素添加信息。如果每个元素都是一个数组,我可以使用 <<,如果它是一个哈希,我可以使用 .merge,但由于我不知道它是什么,我不知道如何添加信息.....

希望你能帮我!

4

2 回答 2

1

好的,您的评论稍微澄清了一点。当你这样做时,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对象转换为数组,然后为其附加一个值。不推荐,但它会满足你的要求。

于 2012-06-23T01:12:29.927 回答
1

你可以找出它们是什么......只是 puts results.class

如果您不想弄乱数组中的对象,您可以创建一个包含您添加的信息的数组或散列。

results.map do |r|
  Hash[result: r, info: "your information here"]
end
于 2012-06-23T01:20:31.107 回答