Ruby on Rails将信息添加到.find结果中

时间:2012-06-23 01:07:18

标签: ruby-on-rails ruby find

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

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

希望你能帮助我!

2 个答案:

答案 0 :(得分:1)

好的,你的评论清除了一点。执行User.find(n)后,您将获得user个对象。如果您执行类似User.find(1, 2, 3)的操作,那么您将获得一组user个对象。因此,动态添加这可能不是一个理想的解决方案。

但是这是一种黑客的方法

users = User.find(1, 2, 3)
modified_users = users.map { |user| Array(user) << "some value tacked on" }

这会将您的user对象转换为数组,然后为其附加一个值。不推荐,但它会做你想要的。

答案 1 :(得分:1)

你可以找到它们......只是puts results.class

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

results.map do |r|
  Hash[result: r, info: "your information here"]
end