轨道上的红宝石 - 创建嵌套哈希来组织对象



我有一个属于CurrencyPaymentModePayment模型。 CurrencyPaymentMode有很多Payments.

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

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

我想得到的是这样的东西:

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

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

提前感谢!

这样的事情呢?

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

相关内容

  • 没有找到相关文章

最新更新