我正在嘗試查找排除某些類別中的對象的數組中的所有負數。這是一個數組的示例。Enumerable#find_all異常Ruby
@transactions =
[{"amount"=>-20, "name"=>"DEPOSIT", "category"=>["BENEFITS"], "category_id"=>"21007000"},
{"amount"=>-0.8, "name"=>"XFER", "category"=>["Transfer", "Credit"], "category_id"=>"2106381"},
{"amount"=>-20, "name"=>"DEPOSIT", "category"=>["Transfer", "Deposit"],
"category_id"=>"21007000"},
{"amount"=>-1, "name"=>"XFER", "category"=>["Transfer", "Credit"],
"category_id"=>"21005000"},
{"amount"=>300.80, "name"=>"XFER", "category"=>"Food", "category_id"=>"2106381"}]
到目前爲止,我有類似的東西,但語法是錯誤的,它不起作用。我甚至不確定我可以在find_all塊上使用「條件」。
items = @transactions.find_all ({ |t| t.fetch('amount') != t.fetch('amount').abs, :conditions => [ t.fetch('category_id') == '2106381' || t.fetch('category') == ["Benefits"] != ?, any? ]})
因此,找到所有對象的數量爲負數,並從該列表中排除具有以下類別ID或類別名稱的對象。
由於只爲負,不具有的優點名稱或類別ID「2106381」
請說明您的意思是「它是不正確的」。 [編輯]將這些信息寫入您的問題。 –
給我們一個數組樣本,然後輸出所需的數據。 –
我看到一些問題。 'find_all'需要一個塊,而不是一個參數,所以你想'find_all {...}'不'findall(...)'。另外,你的開頭'''永遠不會關閉。你能夠運行這些代碼嗎?如果沒有,請嘗試發佈一個至少可以運行的版本,即使它沒有按照您的要求進行。 – lwassink