创建嵌套哈希以组织对象

时间:2013-01-25 08:20:53

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个属于PaymentCurrency的{​​{1}}模型。 PaymentModeCurrency有很多PaymentMode

在我付款的索引页面上,我列出了每笔付款,我希望能够按货币和付款方式对其进行排序。

比方说,我有三种货币(瑞士法郎,美元,欧元)和两种付款方式(现金和蓝卡)。

我想要获得的是这样的:

Payments

实现这一目标的最佳方法是什么?

提前致谢!

1 个答案:

答案 0 :(得分: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