Как передать параметры в контроллере 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 

форма.формат 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%>

2 ответа

  1. Параметры можно передавать с помощью формы или ajax. После того, как вы передаете параметры на сервер (контроллер), вы можете проверить его в журнале сервера, чтобы увидеть параметры. В rails 4 необходимо использовать сильные параметры, чтобы сохранить эти параметры в базе данных.

  2. Возьмем в качестве примера форму будет ниже поля.

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

    Когда выше форма будет представлена. вы можете увидеть серверный терминал rails для params

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

    Доступ params в контроллере, как это:

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

    Надеюсь, это даст вам четкое понимание.