Ruby on rails 在rails的视图中使用哈希
嗨 我在我的模型用户中使用了一个常量散列 作为 我的用户={ :firstname=>“First Name”, :lastname=>“lastname”, :指定=>“我的指定” } 现在在我的视图中,我有一个循环,其中包含所有字段名(firstname、lastname、designation) 因此,我尝试将此字段名作为Ruby on rails 在rails的视图中使用哈希,ruby-on-rails,hash,Ruby On Rails,Hash,嗨 我在我的模型用户中使用了一个常量散列 作为 我的用户={ :firstname=>“First Name”, :lastname=>“lastname”, :指定=>“我的指定” } 现在在我的视图中,我有一个循环,其中包含所有字段名(firstname、lastname、designation) 因此,我尝试将此字段名作为 <% @userfields.sort.each do |userfield| %> <tr> &l
<% @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%>
#给出确切的字段名
#这没什么用
如何纠正这个问题??给出一些建议当您使用变量作为散列的索引时,不应指定冒号,正确的语法是:
User::MYUSER[@userkey]
或
取决于@userkey中的值
但是,您也可以像下面这样直接循环MYUSER常量:
<% User::MYUSER.keys.each do |key| %>
<tr>
<td>Key: <%= key %></td>
<td>Value: <%= User::MYUSER[key] %></td>
</tr>
<% end %>
关键:
价值:
使用变量作为散列的索引时,不应指定冒号,正确的语法为:
User::MYUSER[@userkey]
或
取决于@userkey中的值
但是,您也可以像下面这样直接循环MYUSER常量:
<% User::MYUSER.keys.each do |key| %>
<tr>
<td>Key: <%= key %></td>
<td>Value: <%= User::MYUSER[key] %></td>
</tr>
<% end %>
关键:
价值:
我同意@DanneManne的回答。但更具体地说,您可以使用每个_对迭代记录:
关键:
价值:
我同意@DanneManne的回答。但更具体地说,您可以使用每个_对迭代记录:
关键:
价值:
您尚未指定@userfields的内容,因此我无法确定问题出在哪里。但如果@userfields是[:firstname,:lastname,:designation],那么User::MYUSER[@userkey]应该可以工作。如果@userfields是[“firstname”、“lastname”、“designation”],那么User::MYUSER[@userkey.to_sym]应该可以工作,因为字符串值被转换为符号。但是,如果@userfields是[“Firstname”、“Lastname”、“Designation”],那么您还必须首先将字符串小写,如User::MYUSER[@userkey.downcase.to_sym]。@DanneManna-My@userfield的值是[“f i r s t n a m e”、“l a s t n a m e”、“d e s i g n a t i o n”]。如何删除它们之间的空格并使用如果您真的想使用该数组,那么这可能会起作用:User::MYUSER[@userkey.gsub(“,”)。您尚未指定@userfields的内容,因此我无法确定问题出在哪里。但如果@userfields是[:firstname,:lastname,:designation],那么User::MYUSER[@userkey]应该可以工作。如果@userfields是[“firstname”、“lastname”、“designation”],那么User::MYUSER[@userkey.to_sym]应该可以工作,因为字符串值被转换为符号。但是,如果@userfields是[“Firstname”、“Lastname”、“Designation”],那么您还必须首先将字符串小写,如User::MYUSER[@userkey.downcase.to_sym]。@DanneManna-My@userfield的值是[“f i r s t n a m e”、“l a s t n a m e”、“d e s i g n a t i o n”]。如何删除它们之间的空格并使用如果您真的想使用该数组,那么这可能会起作用:User::MYUSER[@userkey.gsub(“,”).tosym]