0

ビューに渡すために 1 つのオブジェクトに結合したい 3 つのハッシュを持つコントローラーがあります。

@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]

編集:

1つの配列を取得したいだけで、異なる種類のオブジェクトが混在することを気にしない場合は、次のようにすることができます

@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 に答える