Sql Rails数组可以是“吗?”;解压;?
我在客户模型调用中使用以下查询来获得所需的事务集Sql Rails数组可以是“吗?”;解压;?,sql,arrays,ruby-on-rails-3,Sql,Arrays,Ruby On Rails 3,我在客户模型调用中使用以下查询来获得所需的事务集 transactions = sub_account.transactions transaction_items = transactions.map{|transaction| [transaction.transaction_items]} 但是,这将返回一个哈希数组的数组。从rails控制台 [ [# <TransactionItem id: 29, amount: 20>, #<TransactionItem
transactions = sub_account.transactions
transaction_items = transactions.map{|transaction| [transaction.transaction_items]}
但是,这将返回一个哈希数组的数组。从rails控制台
[ [# <TransactionItem id: 29, amount: 20>, #<TransactionItem id: 35, amount: 40>],<br>
[# <TransactionItem id: 31, amount: 30>, #<TransactionItem id: 38, amount: 30>],<br>
[# <TransactionItem id: 43, amount: 30>, #<TransactionItem id: 21, amount: 40>],<br>
]
我知道你可以压缩一个数组,但是你能解压缩它吗?我找不到关于它的任何文件。如果没有解压,我可以调整where查询以在嵌入式阵列上工作吗
谢谢。那么:
transactions_items = []
transactions.each{|n|transactions_items = transactions_items.concat(n.transaction_items)}
假设transactions.transactions\u items是一个数组。
.each
将块应用于每个项目,将当前元素n
的transactions\u项目
关联到数组transactions\u项目
及
或
请参见关于角括号的显示。将其标记为代码,它将保留标记汉克斯·托尼,刚刚制作了editHi Dennis。你能再解释一下交易的情况吗?每种方法?这应该是什么回报。在rails控制台中,我似乎无法实现这一点。另外,您是想放置事务“s”项,还是应该将其与模型、事务项相匹配?@Josh_Katz添加了更多解释!我得到了它!所以toSum也是一个数组,设置为:amount等于30的记录。然后循环遍历该数组,将金额添加到当前的总和?@Josh_Katz toSum是您希望汇总的交易项目(金额=>30),然后使用该数组计算总和。
transactions_items = []
transactions.each{|n|transactions_items = transactions_items.concat(n.transaction_items)}
sum = 0
toSum = transactions_items.where(:amount => 30)
toSum.each{|transaction_item|sum += transaction_item.amount}
sum = 0
toSum = transactions_items.where(:amount => 30)
toSum.inject{|sum, transaction_item| sum + transaction_item.amount}