3

と にPayment属するモデルがCurrencyありPaymentModeます。CurrencyPaymentMode多くを持っていPaymentsます。

私の支払いのインデックス ページには、すべての支払いのリストがあり、通貨と支払いモードで並べ替えることができるようにしたいと考えています。

たとえば、3 つの通貨 (CHF、ドル、ユーロ) と 2 つの支払いモード (現金と BlueCard) があるとします。

私が取得したいのは次のようなものです:

{
  CHF => {
           Cash => [array of corresponding payments], 
           BlueCard => [...]}, 
  Dollars => {
               Cash => [...], 
               BlueCard => [...]}, 
  Euros => {
             Cash => [...], 
             BlueCard => [...]}
}

これを達成するための最良の方法は何ですか?

前もって感謝します!

4

1 に答える 1

4

このようなものはどうですか?

def get_hash_from_payments(payments)
  result_hash = {}
  payments.each do |payment|
    result_hash[payment.currency.symbol] ||= {}
    result_hash[payment.currency.symbol][payment.payment_mode.name] ||= []
    result_hash[payment.currency.symbol][payment.payment_mode.name] << payment #Or whatever info you need from payment.
  end
  result_hash
end
于 2013-01-25T08:44:03.303 に答える