0

ビュー内のテーブルにストアドプロシージャのすべてのデータをレンダリングしようとしていますが、問題は、各ストアドクエリで列の名前が変更され、 (テーブルタイトル)の列名の呼び出しを行い、指定されていないすべてのデータをデータ名でレンダリングすることはできますが、そのデータのすべての結果を表示するにはどうすればよいですか?明らかにそれらを配列で返すクエリ?ストアドプロシージャ内のすべてのレコードをレンダリングする

これはこれは、私は通常、保存されたこのよう

<table class="table table-striped table-bordered table-condensed table-hover rwd_auto"> 
    <thead> 
     <tr> 
     <th>Ruta</th> 
     <th>Pedido</th> 
     <th>IdCliente</th> 
     <th>Cliente</th> 
     <th>Nombre Comercial</th> 
     <th>2010100</th> 
     <th>2020100</th> 
     <th>2020200</th> 
     <th>2020500</th> 
     <th>2021200</th> 
     <th>2200500</th> 
     <th>2200501</th> 
     <th>2200508</th> 
     <th>2200509</th> 
     <th>2201000</th> 
     <th>2203100</th> 
     <th>2203101</th> 
     <th>2203102</th> 
     <th>2203104</th> 
     <th>2203108</th> 
     <th>2203200</th> 
     </tr> 
    </thead> 
    <tbody id="container_productosxpedido"> 
    <%= render partial: "/stored_procedures/cantidad_productoxpedido", collection: @cantidad_productosxpedido %> 
    </tbody> 
</table> 

とでのレンダリングを行う私のモデルstored_procedure.rb

class Stored_procedure < ActiveRecord::Base 

    def self.fetch_db_records(proc_name_with_parameters) 
    connection.select_all(proc_name_with_parameters) 
    end 

    def self.insert_update_delete_calculate(proc_name_with_parameters) 
    connection.execute(proc_name_with_parameters) 
    end 

    def self.fetch_val_from_sp(proc_name_with_parameters) 
    connection.select_value(proc_name_with_parameters) 
    end 

end 

ある

class StoredProceduresController < ApplicationController 
    before_action :authenticate_usuario! 


    def cantidad_productosxpedido 
    @cantidad_productosxpedido = Stored_procedure.fetch_db_records("exec SPAD_ReporteProductosxPedido '#{Time.now.try(:strftime,"%Y%m%d")}','#{params[:search]}','#{params[:search6]}'") 
    respond_to do |format| 
     format.html 
     format.js 
     format.xls 
    end 
    end 

end 

私stored_procedures_controller.rbです部分_cantidad_productoxpedido

<tr> 
    <td><%= cantidad_productoxpedido['Ruta'] %></td> 
    <td><%= cantidad_productoxpedido['Pedido'] %></td> 
    <td><%= cantidad_productoxpedido['IdCliente'] %></td> 
    <td><%= cantidad_productoxpedido['Cliente'] %></td> 
    <td><%= cantidad_productoxpedido['NombreCorto'] %></td> 
    <td><%= cantidad_productoxpedido['2010100'] %></td> 
    <td><%= cantidad_productoxpedido['2020100'] %></td> 
    <td><%= cantidad_productoxpedido['2020200'] %></td> 
    <td><%= cantidad_productoxpedido['2020500'] %></td> 
    <td><%= cantidad_productoxpedido['2021200'] %></td> 
    <td><%= cantidad_productoxpedido['2200500'] %></td> 
    <td><%= cantidad_productoxpedido['2200501'] %></td> 
    <td><%= cantidad_productoxpedido['2200508'] %></td> 
    <td><%= cantidad_productoxpedido['2200509'] %></td> 
    <td><%= cantidad_productoxpedido['2201000'] %></td> 
    <td><%= cantidad_productoxpedido['2203100'] %></td> 
    <td><%= cantidad_productoxpedido['2203101'] %></td> 
    <td><%= cantidad_productoxpedido['2203102'] %></td> 
    <td><%= cantidad_productoxpedido['2203104'] %></td> 
    <td><%= cantidad_productoxpedido['2203108'] %></td> 
    <td><%= cantidad_productoxpedido['2203200'] %></td> 
</tr> 

0が、列の名前を変更するとき、私は

は私がの内容を表示するために解決することができ、これらの列

UPDATEの名前を指定せずにデータを表示するために行う方法がわかりません

012:

<%@cantidad_productosxpedido.to_a.each do |foo|%> 
      <tr> 
      <%foo.each do |label, value|%> 
       <td><%= value %></td> 
      <%end%> 
      </tr> 
     <%end%> 

に従いますが、今、私はこのようなテーブル のヘッダを追加しようとしてテーブル

が、それは、テーブル内の正しい示すが、与えられたレコードのカラム名の配列を返します

<tr> 
    <th>title1</th> <td>value1</th> 
</tr> 
<tr> 
     <th>title2</th> <th>value2</th> 
</tr> 
+0

出力に何を表示しますか? –

答えて

0

object.attributes.keysを次のようにそれをレンダリングしません。これを使用して次のように列を生成できます。

<% @cantidad_productosxpedido.each do |cantidad_productoxpedido| %> 
    <% cantidad_productoxpedido.keys.each do |col| %> 
     <td><%= cantidad_productoxpedido[col] %></td> 
    <% end %> 
<% end %> 

テストされていませんが、動作するはずです。

+0

ちょっとありがとう、私はあなたのコードで次のエラーがあります:ActionView :: Template :: Error code(定義されていないメソッド '属性 '#<ハッシュ:0x862e003c>): しかし、私はそれを解決することができますが、ヘッダー、私は最後に詳細を追加して投稿を更新しました – luis31

関連する問題