我想知道什麼是建立一個自定義哈希方面選擇一個合適的關鍵方面的最佳途徑。可用的選項有:在RoR中構建散列:使用對象引用還是ID作爲鍵?
my_hash = {}
for user in User.all do
my_hash[user] = some_value # option 1 using object reference
my_hash[user.id] = some_value # option 2 using object id
end
我認爲選擇2應該去,因爲它消耗更少的內存,並且可能會更快的方式。但是,它也有一個缺點:
選項1,可以讓我的哈希傳遞給視圖,只是做
<% @my_hash.collect do |user, value| %>
<p><%= user.name %> | <%= value %></p>
<% end %>
,而選項2,需要一些方法來從ID獲取用戶的關鍵。
任何建議如何處理這是非常感謝。 如果您贊成選項2,請指出如何最好地訪問由散列鍵中的id引用的對象。謝謝!
謝謝你指出第三個選項,@thoferon。實際上,我現在正在根據個案的情況做它,但是想重構我的代碼以堅持兩種選擇之一。原因是我最終總是想知道密鑰是ID還是obj。參考。我喜歡你的解決方案,因爲它可以同時處理散列中的所有數據和非常容易地檢索單個條目。如果沒有更好的解決方案出現,在一段時間後會接受答案。謝謝 – emrass