传递对象ID以为嵌套在轨道中

问题描述 投票:0回答:1

我正在使用Rails中嵌套形式的循环,我想通过渲染局部形式传递对象ID

app / model / contract_booking_attached_trips.rb

class ContractBookingAttachedTrip < ApplicationRecord
 has_many :contract_attached_trip_sheets
 accepts_nested_attributes_for :contract_attached_trip_sheets ,allow_destroy: true
 belongs_to :booking_history
 belongs_to :duty_type
 belongs_to :vehicle_make
 belongs_to :vehicle_category
end

app / model / contract_attached_trip_sheet.rb

class ContractAttachedTripSheet < ApplicationRecord
  belongs_to :contract_booking_attached_trip
end

app / controller / contract_booking_attached_trips_controller

 def edit
   @contract_booking_attached_trip = ContractBookingAttachedTrip.find(params[:id])
   booking_history_id = @contract_booking_attached_trip.booking_history_id
   @booking_history  = BookingHistory.find(booking_history_id)
   @booking_trips = @booking_history.transport_plans
   @trip_count = @booking_history.transport_plans.count    
   @contract_booking_attached_trip.contract_attached_trip_sheets.build
end

app / views / ContractBookingAttachedTrips / _form.html.erb

    <div class="container-fluid">
     <%= form_for(@contract_booking_attached_trip, :html => {class: "form-horizontal",id:              "contract_trip_sheet_validate"}) do |f| %>
 <div class="card">
     <div class="card-header">
     <h5 class="panel-title float-left" style="padding-top: 7.5px;">Duty Slip</h5          
     </div> <!-- /.card header -->
  <div class="card-body">

      <div class="card">
      <div class="card-body" style="margin-bottom: -50px;">

        <div class="row">
        <div class="col-md-6 col-lg-6 mb-4 mb-lg-4">
          <div class="table-responsive ">
        <!--Table-->
        <table id="dataTable" class="table table-borderless  table-sm" cellspacing="0">
          <!--Table body-->
          <tbody>
            <tr>
              <th>Customer</th>
              <th><b><%= User.find(@contract_booking_attached_trip.booking_history.try(:user_id)).try(:username) %></b></th>                         
            </tr>                       
          </tbody>
          <!--Table body-->
        </table>
        <!--Table-->
      </div> <!-- table  -->
        </div>
        <div class="col-md-6 col-lg-6 mb-4 mb-lg-4">
          <div class="table-responsive ">
        <!--Table-->

      </div> <!-- table  -->
        </div>           
       </div><!-- row1 -->
     </div> <!-- inner card body -->
    </div> <!-- inner card -->
    <div class="row">
      <div class="col-md-12">
         <div class="card">
          <div class="card-header">
            <h6 class="float-left">Trip Sheet</h6>
               </div> 
           <div class="card-body">

          <div class="row">
      <div class="col-md-11">
        <% @booking_history.transport_plans.each do |transport_plan| %>

        <%= f.fields_for :contract_attached_trip_sheets ,transport_plan do |builder| %>   
        <h3><%= transport_plan.id %> </h3>
         <%= render 'contract_attached_trip_sheet_fields', :f => builder,{ :transport_plan =>transport_plan} %>
        <% end %>
        <% end %>
      </div>

    <div class="col-md-1">
      <%= link_to_add_association "+",  f, :contract_attached_trip_sheets, class: "fa fa-user fa-lg"  %>
       </div> 
       </div>      
         </div> <!-- /.inner card body -->
         </div>    <!-- /.inner card -->
        </div> <!-- /. col 12 -->
      </div> <!-- /.inner card row -->
       </div>       
         </div>
             <div class="card-footer ">
                <div class="btn-group float-right">            
                         <%= f.submit "submit", class:"btn btn-primary btn-sm button",     id:"generateInvoice" %>
                </div>
               </div>

              </div><!-- /.card -->

           <% end %>
            </div> <!-- /.container fluid -->

app / views / contract_booking_attached_trips / _contract_attached_trip_sheet_fields.html.erb

  <fieldset>

   <div class="nested-fields">

     <div class="row">

        <div class="col-md-2">
         <label  class="label" for="">Initial Odo Reading<span class="star"></span></label>
                  <div class="md-form form-group">
                 <%= f.text_field :initial_odo_reading, class: "form-control" %>

                  </div>
                </div>
       <div class="col-md-2">
      <label  class="label" for=""> Trip Start Date<span class="star"></span></label>
                  <div class="md-form form-group">
                    <%= f.text_field :trip_start_date_time, class: "form-control"%>

                  </div>
                </div>

<div class="col-md-2">
<label  class="label" for=""> Final Odo Reading<span class="star"></span></label>
                  <div class="md-form form-group">
                    <%= f.text_field :final_odo_reading, class: "form-control" %>
                  </div>
                </div>


 <div class="col-md-2">
<label  class="label" for=""> Trip Stop Date<span class="star"></span></label>
                  <div class="md-form form-group">

                    <%= f.text_field :trip_stop_date_time,  class: "mobile form-control" %>

                  </div>
                </div>



      <div class="col-md-2">
 <label class="label" for=""> Toll Cost<span class="star"></span></label>
                  <div class="md-form form-group">
                    <%= f.text_field :toll_cost, class: "form-control", placeholder:"" %>

                  </div>
                </div>
                <div class="col-md-2">
 <label class="label" for=""> Permit Cost<span class="star"></span></label>
                  <div class="md-form form-group">
                    <%= f.text_field :permit_cost, class: "form-control", placeholder:"" %>

                  </div>
                </div>
                <div class="col-md-2">
 <label class="label" for="">Parking Cost<span class="star"></span></label>
                  <div class="md-form form-group">
                    <%= f.text_field :parking_cost, class: "form-control", placeholder:"" %>

                  </div>
                </div>
            <%= f.hidden_field :transport_plan_id, value: :transport_plan %>


<div class="col-md-1">
    <br/>


    <%= link_to_remove_association " " ,f, class:"fa fa-trash ", style: "color:red; font-size:20px; top:14px; " %>
                        </div>                    


 </div>
  <br />
   </div>
     </fieldset>

我是tryinh在隐藏字段中传递transport_plan_id,但在enter image description here

请告诉我如何将ID通过嵌套的渲染部分传递

ruby-on-rails nested-forms
1个回答
0
投票
<%= render 'contract_attached_trip_sheet_fields', :f => builder, :transport_plan =>transport_plan %>

有两种方法可以将数据传递给分部,您可以编写:

  render  partial:  'partial_name', locals: {f: builder, a: 123} 

或者简单的形式就是

  render 'partial_name', f: builder, transport_plan: transport_plan  
© www.soinside.com 2019 - 2024. All rights reserved.