我有一个属于Currency
和PaymentMode
的Payment
模型。 Currency
和PaymentMode
有很多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