2015-04-27 2 views
1

Я хочу получить доступ к столбцу данных с помощью Rails 3, но не смог его получить. Наконец, пустой рендеринг при рендеринге таблицы out.Please сначала проверит мою таблицу, которая приведена ниже ,Не удается получить данные столбца с помощью Rails 3

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

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

8 150325006 GOODS 1195.00 2015-04-15 2015-04-28 Deepak No 

Из приведенных выше таблиц я хочу получить доступ к колонку «типа», используя v_name.I попробовала один раз, но получила пустые array.I объясняющих мой код ниже.

payment.html.erb:

<div class="tbpaddingdiv2"> 
    <%= form_for :payment,:url => {:action => "check_type" },remote: true do |f| %> 
    <div class="totalaligndiv"> 
     <div class="input-group bmargindiv1 col-md-6 pull-left"><span class="input-group-addon text-left"><div class="leftsidetextwidth">Type :</div></span> 
     <%= f.select(:s_catagory,options_for_select([['Wood','Woods'],['Puja Samagree','GOODS'],['Sweeper','SWD'],['Photo Grapher','PHOTO'],['Burning Assistant','BURNING'],['BRAHMIN','BRAHMIN']],selected: "Type"),{},{:class => 'form-control',:onchange => ("$('#switch_car').submit()")}) %> 
     </div> 
     <div id="div_select" style="display:none"> 
     <div class="input-group bmargindiv1 col-md-6 pull-left" ><span class="input-group-addon text-left" ><div class="leftsidetextwidth">Select Vendor :</div></span> 
     <div id="name-option"> 

     </div> 
     </div> 
     </div> 
     <div class="clearfix"></div> 
     <div class="tbpaddingdiv1 text-center"> 
     <%= f.submit "submit",:class => "btn btn-success",:id => "switch_car" %> 
     </div> 
    </div> 
    <% end %> 
</div> 

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[:payment][:v_name]).pluck(:type) 
     else 
      @v_name=Vendor.where(:s_catagory => params[:payment][:s_catagory]).pluck(:v_name) 
     end 
    end 
end 

check_type.js.erb:

<% if @v_name %> 
$("#div_select").css("display", "block"); 
$("#name-option").html("<%= escape_javascript (render 'nameoption') %>"); 
$("#name-option").slideDown(350); 
<% end %> 
<% if @vendor_type %> 
console.log('hello') 
$(".flash-message").html('<%= escape_javascript flash[:notice] %>'); 
$("#paymentdetail").css("display", "block"); 
$("#paymentoption").html("<%= escape_javascript (render 'paymentdetails') %>"); 
$("#paymentoption").slideDown(350); 
<% end %> 

После получения всех данных столбца, которые мне нужны, когда type == "SWD", все связанные значения этой строки будут отображаться в таблице ниже.

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> 

Пожалуйста, помогите мне решить эту проблему.

+0

Что точная ошибка, которую вы получаете? См. Рекомендации по [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) – screenmutt

+0

@screenmutt: На самом деле я получаю пустой массив на шаблоне. – satya

+2

Здесь вы указали так много информации, что не имеет значения. Выполните следующие шаги (1) Проверьте таблицу вручную, есть ли у нее данные? (2) Проверьте вывод своей команды в контроллере, есть ли там пустой массив? (3) Удалите все несвязанные коды (т. Е. Форму и таблицу). Как только вы будете вытаскивать данные, вы можете использовать его в любом месте. – screenmutt

ответ

0

Вы пытаетесь передать params[:payment][:v_name] вместо params[:v_name]

Попробуйте это: в check_type методе вашего контроллера:

@vendor_type = PaymentVendor.where(:v_name => params[:v_name]).pluck(:type) 
Смежные вопросы