[英]Ruby: Make hash from Hash => Set
我有一個聯接表,用於查找訂單的可用服務。 該表中的是utility_id
和company_id
。
我想要的是一個組(哈希),其中鍵是實用程序名稱,值是相應公司的哈希值。
我得到了以下...
Service.find(:all).to_set.classify { |service| Utility.find(service.utility_id).name }
...這很好地給了我一個哈希,其中的鍵是實用程序名稱,但值是Service記錄的Set ,而不僅僅是公司名稱(我不需要實際的記錄),而且我不能弄清楚如何進行所需的哈希:
# example of what I would like to have
{"electricity" => {"conEd" => 1, "Dominian" => 2}, "gas" => {"conEd" => 1}}
# where the key is Utility.name, and the value-hash is {Company.name => Company.id}
我該怎么做?
find(:all)
向我建議Rails,因此,假設您在Utility和Service模型之間正確地擁有HABTM,此代碼段適用於我的測試環境:
results = Hash.new
Utility.find(:all).each do |utility|
results[utility.name] = Hash.new
utility.companies.each do |company|
results[utility.name][company.name] = company.id
end
end
results
哪個產生
{"Communications"=>{"InternetCo"=>2, "PhoneCo"=>1}, "Energy"=>{"ElectricCo"=>4, "GasCo"=>3, "OilCo"=>5}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.