我有一个带有3个哈希的控制器,我希望将它组合成1个对象以传递给视图。
@feedorders = current_user.orders.order("created_at DESC")
@feedcustomers = current_user.customers.order("created_at DESC")
@feedbooks = current_user.books.order("created_at DESC")
我该如何回去做?
答案 0 :(得分:1)
@combined = {orders: @feedorders, customers: @feedcustomers, books: @feedbooks}
然后你可以用
获得订单@combined[:orders]
编辑:
如果你只是想获得一个数组并且不关心不同类型的对象混合,那么你可以这样做
@combined = @feedorders + @feedcustomers + @feedbooks
在视图中使用这样的数组可能会有点困难。
答案 1 :(得分:0)
将它们添加到一起可能是最简单的解决方案,您可能希望重新构建它的存储方式。看起来你也想要它们的顺序,这意味着你应该将总和传递给这样的排序函数:
@combined = (@feedorders + @feedcustomers + @feedbooks).sort { |x, y| x.created_at <=> y.created_at}