적절한 키를 선택하는 측면에서 사용자 지정 해시를 만드는 가장 좋은 방법은 무엇일까 궁금합니다. 사용할 수있는 옵션은 다음과 같습니다.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 옵션 2 키의 ID에서 사용자를 얻기 위해 어떤 방법을 필요로하는 반면
<% @my_hash.collect do |user, value| %>
<p><%= user.name %> | <%= value %></p>
<% end %>
.
이 문제를 해결하는 방법에 대한 권장 사항은 크게 알려드립니다. 옵션 2를 선호하는 경우 해시 키에서 ID가 참조하는 개체에 가장 잘 액세스하는 방법을 지정하십시오. 고맙습니다!
세 번째 옵션 인 @thoferon을 알려 주셔서 감사합니다. 실제로 저는 사례별로 사례를 가지고 있지만, 두 코드 중 하나에 충실하도록 코드를 리팩토링하려고합니다. 그 이유는 키가 ID인지 obj인지 항상 궁금해하기 때문입니다. 참고. 해시의 모든 데이터를 처리하고 단일 항목을 매우 쉽게 가져올 수 있으므로 솔루션이 마음에 듭니다. 더 나은 해결책이 나오지 않으면 잠시 후에 답을 수락합니다. 감사 – emrass