3

我有一个Payment属于Currencyand的模型PaymentModeCurrency并且PaymentMode有很多Payments

在我的付款索引页面上,我有每笔付款的清单,我希望能够按货币和付款方式对它们进行排序。

例如,假设我有三种货币(瑞士法郎、美元、欧元)和两种支付方式(现金和蓝卡)。

我想要得到的是这样的:

{
  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 回答