这是我(poappcontroller.rb)
def index
@poapps = Poapp.where(action: 'approve').pluck(:from, :invoice)
end
index.html.erb
<table>
<% @poapps.each do |poapp| %>
<tr>
<td>
<%= poapp %>
</td>
</tr>
<% end %>
</table>
output
["Snehpandya", "fegd620"]
["Snehpandya", "bvnp1442"]
预期输出
数据库
答案 0 :(得分:4)
.pluck(:from, :invoice)
返回数组。
因此,@poapps
看起来像:
[["Snehpandya", "fegd620"],["Snehpandya", "bvnp1442"]]
这就是为什么当您执行<%= poapp %>
时,您将输出为数组["Snehpandya", "fegd620"]
要以snehpandya fegd62
格式显示,请按以下方式更改index.html.erb
:
<table>
<% @poapps.each do |poapp| %>
<tr>
<td>
<%= poapp.join(" ") %> <!-- This will return a string connecting all elements of array with a space-->
</td>
</tr>
<% end %>
</table>
<强>更新强>
获取更改的输出,如问题中附带的图像所示。你可以这样做:
正如MrYoshiji所建议的
<table>
<% @poapps.each do |from, invoice| %>
<tr>
<td>
<%= from %>
</td>
<td>
<%= invoice %>
</td>
</tr>
<% end %>
</table>
答案 1 :(得分:1)
Pluck返回一个数组,如果选择多个项目,它将返回一个数组数组。因此,您需要循环使用它们
<table>
<tr>
<th>Invoice</th>
<th>From</th>
</tr>
<% @poapps.each do |poapp| %>
<tr>
<%= poapp.each do |poapp_content| %>
<td>
<%= poapp_content %>
</td>
<% end %>
</tr>
<% end %>
</table>
答案 2 :(得分:1)
尝试
<%= poapp.join(" ") %>