Использование хэша в рельсах - PullRequest
0 голосов
/ 01 декабря 2010

HI,

Я использую постоянный хеш в моей модели User как

MYUSER = {: firstname => "Имя",: фамилия => "Имя LAst",:Обозначение => «Мое обозначение»}

Теперь в моих представлениях у меня есть цикл, в котором у меня есть все эти имена полей (имя, фамилия, обозначение)

Поэтому я пытаюсь отправить это полеимя в качестве ключа в

    <% @userfields.sort.each do |userfield| %>
        <tr>
          <td>

         <% @userkey=userfield%>
         <%= @userkey%> # gives the exact field names
          <%= User::MYUSER[:@userkey]%> # this doesnt gives anything
           <td></tr>
     <%end%>

Как исправить это ??дать несколько предложений

Ответы [ 2 ]

3 голосов
/ 01 декабря 2010

Когда вы используете переменную как индекс для хеша, вы не должны указывать двоеточие, правильный синтаксис будет:

User::MYUSER[@userkey]

или

User::MYUSER[@userkey.to_sym]

в зависимости от значения в @ userkey.

Тем не менее, вы также можете зациклить константу MYUSER напрямую следующим образом:

<% User::MYUSER.keys.each do |key| %>
  <tr>
    <td>Key: <%= key %></td>
    <td>Value: <%=  User::MYUSER[key] %></td>
  </tr>
<% end %>
2 голосов
/ 01 декабря 2010

Я согласен с ответом @ DanneManne. Но, в частности, вы можете перебирать записи, используя each_pair:

<% User::MYUSER.each_pair do |key, value| %> <tr> <td>Key: <%= key %></td> <td>Value: <%= value %></td> </tr> <% end %>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...