在rails中使用哈希视图

时间:2010-12-01 12:05:39

标签: ruby-on-rails hash

HI,

我在我的模型用户中使用了COnstant哈希  如

MYUSER = {   :firstname => “名字”,   :lastname => “姓”,   :designation => “我的指定”   }

现在在我的观点中,我有一个循环,我有所有这些字段名称(名字,姓氏,名称)

所以我尝试将此字段名称作为

中的键发送
    <% @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 个答案:

答案 0 :(得分:3)

当您使用变量作为哈希的索引时,不应指定冒号,正确的语法是:

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 %>

答案 1 :(得分:2)

我同意@ DanneManne的回答。但更具体地说,您可以使用each_pair迭代记录:

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