rails中的搜索格式不符合预期?

时间:2014-04-16 14:13:14

标签: ruby-on-rails search ruby-on-rails-4

这是我(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"]

预期输出

have alook

数据库

picture from database

3 个答案:

答案 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(" ") %>