【问题标题】:Search format in rails not as per expected?Rails 中的搜索格式不符合预期?
【发布时间】:2024-04-24 13:50:02
【问题描述】:

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

预期输出

数据库

【问题讨论】:

  • 向我们展示您的poapps 表中的记录
  • @poapps.each do |from, invoice| -> 这会将数组拆分为两个局部变量
  • 如果您要编辑您的问题,请清楚地显示原始内容和更改的内容。否则以后的读者会觉得很混乱。

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


【解决方案1】:

.pluck(:from, :invoice) 返回一个数组数组。 所以,@poapps 看起来像:

[["Snehpandya", "fegd620"],["Snehpandya", "bvnp1442"]]

这就是为什么当你执行&lt;%= poapp %&gt; 时,你会得到一个数组["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>

更新

要获得更改的输出,如问题中所附图片所示。你可以这样做:

正如Yoshiji先生建议的那样

   <table>
    <% @poapps.each do |from, invoice| %>
    <tr>
      <td> 
        <%= from %> 
      </td>
      <td> 
        <%= invoice %> 
      </td>
    </tr>

     <% end %>
    </table>

【讨论】:

  • “fegd620”的未定义方法`join':String ..这是我得到的
  • 准确复制代码。不要将其与 Baloo 的答案合并。
  • 感谢 kirti,但我只能看到 invoice ..from 没有显示
【解决方案2】:

试试

<%= poapp.join(" ") %>

【讨论】:

  • 这并没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
  • 那是因为自从我回答之后他改变了他的问题。当我回答它时,这个答案是正确的。
  • 就风格而言,单行答案不是一个好主意。如果您无话可说,那么也许评论就足够了。
  • 这是一个*策略吗? “如果你能简洁地回答问题,那么你不应该把它作为一个答案,你应该把它作为一个评论”?
  • 政策是问题和答案都应该是高质量的,这样它们才能使其他读者受益。实践是那些知道答案但懒得花时间写完整答案的人通常会添加一个简短的评论。你的回答是通过审查队列来给我的,质量很低。如果您想避免这种情况,请作为评论提交或写更长的答案。但是你的代表应该知道这一切。
【解决方案3】:

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>

【讨论】:

  • 已更新,但您应该接受 Kirti Thorat 的回答,因为她为您提供了您最初要求的输出,而这次您再次更改了它。