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%>
如何纠正这个?提出一些建议
答案 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 %>