Ruby on rails 循环遍历数组的最佳方法
我的控制器将此数组传递给视图:Ruby on rails 循环遍历数组的最佳方法,ruby-on-rails,Ruby On Rails,我的控制器将此数组传递给视图: @ipd = Ipdw.connection.select_all("select * from [My Preferences]") 这是我的视图代码: <h1>Hello, Rails</h1> <body> <% @ipd.each do |ip| %> <p><%= ip %></p> <% end %> </body> 我想在表格中显
@ipd = Ipdw.connection.select_all("select * from [My Preferences]")
这是我的视图代码:
<h1>Hello, Rails</h1>
<body>
<% @ipd.each do |ip| %>
<p><%= ip %></p>
<% end %>
</body>
我想在表格中显示
“用户名”
和“字段名”
。如何在数组中循环以仅显示可读内容中的这些列?类似于:
<h1>Hello, Rails</h1>
<body>
<% @ipd.each do |ip| %>
<p>
<% ["Username", "Field Name"].each do |k| %>
<%= ip[k] %>
<% end %>
</p>
<% end %>
</body>
这样,您就可以在控制器中决定需要哪些字段(以及顺序),而不必使用html.erb文件
如果您想稍微修饰一下这些标签名称,您可以在控制器中执行以下操作:
@label_mapping = {"Username"=>"User Name", "Field Name"=>"Field Name"}
然后:
<h1>Hello, Rails</h1>
<body>
<table>
<tr>
<% @field_names.each do |field_name| %>
<th>
<%= label_mapping[field_name] %>
</th>
<% end %>
</tr>
<% @ipd.each do |ip| %>
<tr>
<% @field_names.each do |field_name| %>
<td>
<%= ip[field_name] %>
</td>
<% end %>
</tr>
<% end %>
</table>
</body>
你好,Rails
您的查询似乎返回了一个哈希数组。只需使用键选择您感兴趣的值:
<% @ipd.each do |ip| %>
<p>
<%= ip['Username'] %><br />
<%= ip['Field Name'] %>
</p>
<% end %>
可能有两种方法:
首先,您有一个此类数据的模型:
<% @ipd.each do |ip| %>
<p><%= ip.username %></p>
<% end %>
第二声:
从外部数据库获取的数据集看起来像一个散列。因此,请尝试以下方法:
<% @ipd.each do |ip| %>
<p><%= ip["username"] %></p>
<% end %>
我认为第二种是你需要的;)
从某种角度来看,我不会使用更短的循环方式,因为代码的可读性会降低:
abc.each{letter}{letter} “}
您是在问如何用html编写表还是从返回的哈希中获取值?
<% @ipd.each do |ip| %>
<p>
<%= ip['Username'] %><br />
<%= ip['Field Name'] %>
</p>
<% end %>
<% @ipd.each do |ip| %>
<p><%= ip.username %></p>
<% end %>
<% @ipd.each do |ip| %>
<p><%= ip["username"] %></p>
<% end %>