我有一个带有 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")
我该怎么回去做这个?
我有一个带有 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")
我该怎么回去做这个?
@combined = {orders: @feedorders, customers: @feedcustomers, books: @feedbooks}
然后你可以得到订单
@combined[:orders]
编辑:
如果您只想获得一个数组并且不在乎不同类型的对象混合在一起,那么您可以这样做
@combined = @feedorders + @feedcustomers + @feedbooks
在视图中使用这样的数组可能会有点困难。
将它们加在一起可能是最简单的解决方案,您可能还想重新调整存储方式。似乎您也希望它们排序,这意味着您应该将总和传递给这样的排序函数:
@combined = (@feedorders + @feedcustomers + @feedbooks).sort { |x, y| x.created_at <=> y.created_at}