使用Rails 3在表中显示数组数据

时间:2015-04-28 07:43:06

标签: ruby ruby-on-rails-3.2

我想使用Rails 3在表格中显示一些数据。假设我有以下数据数组。

@vendor_type=["SWD", "GOODS","SWD"]

我的数据库结构如下。

table- Payment_vendors:
id  Receipt_No   type   v_amount    v_date      c_date      v_name    v_status

7    150325005   SWD     60.00     2015-04-15  2015-04-28   Deepak    No

8    150325006   GOODS   1195.00   2015-04-15  2015-04-28   Deepak    No
9    150325007   SWD      60.00    2015-04-15  2015-04-29   Deepak    No

实际上我的要求是在@vendor_type==SWD时,它将检索与“SWD”对应的所有Receipt_no。根据Receipt_No,相应的行数据将获取并附加在下表中。

  

paymentdetails.html.erb:

<table class="table table-bordered">
    <colgroup>
        <col class="col-md-1 col-sm-1">
        <col class="col-md-1 col-sm-1">
        <col class="col-md-3 col-sm-3">
        <col class="col-md-3 col-sm-3">
        <col class="col-md-4 col-sm-4">
    </colgroup>
    <thead>
        <tr>
            <th class="text-center"><input type="checkbox"></th>
            <th class="text-center">Sl. No</th>
            <th class="text-center">Date</th>
            <th class="text-center">Receipt No.</th>
            <th class="text-center">Amount</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <th class="text-center"><input type="checkbox" id="checkbox1-1" name="checkbox1-1"></th>
            <td class="text-center"></td>
            <td class="text-center"></td>
            <td class="text-center"></td>
            <td class="text-center"><i class="fa fa-rupee"></i></td>
        </tr>
    </tbody>
</table>

我的控制器文件如下所示。

  

payments_controller.rb:

class PaymentsController < ApplicationController

    def payment
        @payment=Vendor.new
        respond_to do |format|
            format.html 
            format.js
        end

    end
    def check_type  
        if params[:commit]=="submit"
           @vendor_type=PaymentVendor.where(:v_name => params[:v_name]).pluck(:type )
           #@vendor_type=PaymentVendor.pluck_all(PaymentVendor.where(:v_name => params[:v_name]),:type ,:Receipt_No)

        else
            @v_name=Vendor.where(:s_catagory => params[:payment][:s_catagory] ).pluck(:v_name)
        end
    end
end

请帮我解决此问题。

1 个答案:

答案 0 :(得分:0)

我只能对你想要的东西做出最好的猜测,但我认为你要求的是:

1)在PaymentsController中的check_type方法中更改此行:

@vendor_type=PaymentVendor.where(:v_name => params[:v_name])

这摆脱了.pluck方法,并返回一个PaymentVendor对象数组,而不仅仅是列:type。

现在在您的ERB文件中,您需要一个循环结构,它将在表体中为@vendor_type数据结构中的每个项创建行:

...
</thead>
  <tbody>
   <% @vendor_type.each do |vt| %>
    <tr>
        <td class="text-center"><input type="checkbox" id="checkbox1-1" name="checkbox1-1"></th>
        <td class="text-center">????? what column does "Sl. No" refer to??? </td> 
        <td class="text-center"><%= vt.v_date %></td>
        <td class="text-center"><%= vt.receipt_no %></td>
        <td class="text-center"><i class="fa fa-rupee"><%= vt.v_amount %></i></td>
    </tr>
   <% end %>
  </tbody>
</table>