2013-03-22 2 views
1

많은 값을 가진 해시가 있습니다. 각 값에 대해 목록 항목을 생성하려고합니다.
다음 작업을 수행하면 해시의 마지막 항목 만 표시됩니다. 레일스 해시에서 동적으로 HTML 목록에 추가

<% data.each do |k, v| %> 
    <li><%= v['name'] %> - <%= v['email'] %></li> 
<% end %> 

data

내가 HTML 목록에 해시에서 모든 값을 추가하려면 어떻게 YAML

person: 
    name: ABC 
    email: [email protected] 
person: 
    name: LMN 
    email: [email protected] 

에서로드? 감사합니다

+1

있는 유일한 방법을 당신의 변수는'Config'입니다. 이것은 대부분의 Rails 예약어 목록에 나타나므로 변수 이름을 다른 이름으로 지정하는 것이 좋습니다 (소문자도 사용하십시오). –

답변

1

실제 YAML 파일 인 경우 키가 모두 person이기 때문에 하나의 개체 만 표시되는 이유가 있습니다. 이것을 해시로 구문 분석하면 person의 각 인스턴스는 person 키에 저장되며 해시 키는 고유해야하므로 마지막 레코드 만 유지됩니다.

당신은 아마 (YAML에서 말하는 "매핑 순서"또는)를 해시의 배열로이를 구성하려면 :

--- 
- name: LMN 
    email: [email protected] 
- name: ABC 
    email: [email protected] 

다음과 같은 반복 : 비린내가 보이는

<% data.each do |entry| %> 
    <li><%= entry['name'] %> - <%= entry['email'] %></li> 
<% end %> 
+0

코드가 제대로 작동합니다. 나는 YAML을 교정했다. 감사 – y2p