仅传递为其他视图选中的复选框

Pass only checkboxes checked for other view

我有两个视图,第一个是显示所有授权的 table,如何让其他视图仅通过检查的授权?

这是第一个视图:(这里一切正常)

(...)
 <% @authorizations.each do |authorization| %>
      <tr>
        <td><%= check_box_tag 'authorization_marked' %></td>
(...)
<%= f.button :submit, "To Reserve" %>

我的第一个和第二个控制器:

def index
    if params[:search_employee_by_cpf].present?
      @employees = Employee.search_cpf(params[:search_employee_by_cpf]).all
      @authorizations = Authorization.search_employee_by_cpf(params[:search_employee_by_cpf]).all
    else
      @authorizations = []
    end
  end

  # GET /refinancings/new
  def new
    @employee = Employee.search_cpf(params[:search_employee_by_cpf])
    @authorizations.authorization_marked = true # PROBLEM HERE
    @refinancing = Refinancing.new
  end

在其他视图中,我只想显示选中的:

  <h3>Reserved value</h3>
  <table class="table table-condensed table-bordered table-striped">
    <thead>
      <th>Contract number</th>
      <th>Parcel value X Quantity of Parcels</th>
    </thead>
    <% @authorizations.each do |authorization| %>
      <tbody>
        <tr>
          <td><%= authorization.contract_number %></td>
          <td><%= number_to_currency authorization.parcel_value %> x <%= authorization.qtd_parcel %></td>
        </tr>
      </tbody>
    <% end %>
  </table>

因此您的第一个表单需要捕获要传递给第二个视图的所有行的 ID 号。在您的第二个操作中,您需要捕获这些参数,并收集您希望第二个视图加载的对象。

当您 post 第一个表单时,请仔细查看正在传递的数据,这些数据是您必须用来创建您想要的下一个集合的数据。

我明白了!这是我的解决方案,为此创建了一个存储库,看看代码:

https://github.com/eltonsantos/playing_checkboxes