簡體   English   中英

如何在Ruby On Rails中的控制器中傳遞參數

[英]How to pass parameters in controller in Ruby On Rails

我正在嘗試在控制器中傳遞參數,但它沒有返回任何內容。請幫助我如何傳遞參數。 控制器代碼-

 def print_salary_slip_monthwise
      @month = params[:salary][:month]
      @year = params[:salary][:year]
      @company = params[:salary][:company_id]
      @company_location = params[:salary][:company_location_id]
      @department = params[:salary][:department_id]
      @salaryslips = Salaryslip.where(month:  @month,year: @year.to_s,employee_id: @salary1)

    end 

form.html.erb-這是我在change事件中使用的表單。

<div class="box">
  <div class="box-header">
    <h3 class="box-title">Salary Slip Department Wise</h3>
  </div><!-- /.box-header -->
  <div class="box-body">
<%= bootstrap_form_for(:pdf_salaries, url: { action: 'print_salary_slip_monthwise'},html: {id: 'pdf_salaries'},remote: true ) do |f| %>
     <div class="row">

      <div class="col-sm-2">
      <label>Year</label>
        <div class="field">
          <%= select :salary,:year,['2015','2016','2017','2018','2019','2020','2021','2022','2023','2024','2025','2026','2027'],{label: 'Select Year',include_blank: " Select Year"},{class: 'form-control'} %>
        </div>
      </div>
      <div class="col-sm-2">
      <label>Month</label>
        <div class="field">
          <%= select :salary,:month, ['January','February','March','April','May','June','July','August','September','October','November','December'],{label: 'Select Month',include_blank: " Select Month"}, class: "form-control" %>
         </div>
      </div>

       <div class="col-sm-2">
            <div class="form-group required">
            <div class="input-group">
              <%= f.select :company_id, all_company,{include_blank: "Select Company"},{onchange:"var a={id:$(this).val(), form : 'employee'}; $.get('/employees/collect_company_location',a,function(response){});"}%>
            </div>
            </div>
          </div>

      <div class="col-sm-2">
            <div class="form-group required">
              <div id="company_location">
                <%= render 'employees/company_location_dropdown' %> 
            </div> 
            </div>
          </div>

       <div class="col-sm-3">
            <div class="form-group required">
            <div class="input-group">
              <div id="department">
                <%= render 'employees/department_dropdown' %> 
            </div> 
            </div>
            </div>
        </div>
      </div>
      <div class="row">
       <div class="col-sm-2">
          <div class="actions">
            <%= f.submit "Display Report", class: "btn btn-sm btn-primary",id: "buttonCtc" %>
          </div>
        </div>
        </div>
         <div class="ajax-progress"></div>
       <div id="employee_list_pdf"></div>
</div>
</div>
<%end%>

您可以使用表單或ajax傳遞參數。 將參數傳遞到服務器(控制器)后,可以將其檢查到服務器日志中以查看參數。 在rails 4中,您需要使用Strong Parameters將這些參數保存到數據庫中。

以此為例,“表單將在下面”字段。

<%= simple_form_for @user do |f| %>
  <%= f.input :username %>
  <%= f.input :password %>
  <%= f.button :submit %>
<% end %>

當上述表格將被提交。 您可以看到用於參數的Rails服務器終端

 Parameters: {"user"=>{"username"=>"user1", "password"=>"password"}, "commit"=>"Submit"}

像這樣訪問控制器中的參數:

params[:user][:username]  # code in controller

希望這能給您清楚的理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM