0

我有一个带有 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")

我该怎么回去做这个?

4

2 回答 2

1
@combined = {orders: @feedorders, customers: @feedcustomers, books: @feedbooks}

然后你可以得到订单

@combined[:orders]

编辑:

如果您只想获得一个数组并且不在乎不同类型的对象混合在一起,那么您可以这样做

@combined = @feedorders + @feedcustomers + @feedbooks

在视图中使用这样的数组可能会有点困难。

于 2012-06-24T20:39:07.827 回答
0

将它们加在一起可能是最简单的解决方案,您可能还想重新调整存储方式。似乎您也希望它们排序,这意味着您应该将总和传递给这样的排序函数:

@combined = (@feedorders + @feedcustomers + @feedbooks).sort { |x, y| x.created_at <=> y.created_at}
于 2012-06-26T00:12:36.717 回答