2016-09-19 64 views
0

我有一个叫“贷款”的模型,它有很多:车辆。贷款的模型实现通过嵌套形式接受车辆的嵌套属性(通过simple_form gem提供)。通过表单生成器嵌套形式输出记录ID

class Loan < ApplicationRecord 
    has_many :vehicles 
    accepts_nested_attributes_for :vehicles 
end 

class LoansController < ApplicationController 

    def new 
    @loan = Loan.new 
    @loan.vehicles.build 
    end 

    def edit 
    @loan = Loan.find(params[:id]) 
    @vehicle = @loan.vehicles 
    end 
end 

Edit.html.erb:

<%= simple_form_for @loan, :html => {:class => "loan-edit-form"} do |f| %> 
     <%= f.simple_fields_for :vehicles do |vehicle| %> 
     <%= render 'vehicle_fields_edit', :f => vehicle %> 
     <% end %> 
<% end %> 

_session_fields_edit.html.erb:

<div class="nested_vehicle" data-id="<%= @vehicle.id %>"> 
    <%= f.hidden_field :id, id: "vehicle_id", name: "vehicle_id" %> 
    <div class="divider-top"></div> 
    <div class="vehicle-number"> 
    Vehicle <span class="vehicle-count-rails"><%= f.index + 1 %></span> 
    </div> 
    ...... etc 
</div> 

的问题是我无法显示车辆的数据库记录ID在编辑嵌套窗体,因为我正在使用简单的表单构建器,而不是简单地通过使用@loan.vehicles.each do |vehicle|循环使用贷款记录,因此我试图在“数据标识”属性中执行此操作。

使用隐藏字段我能够显示记录ID,但是,它显示在输入表单字段项中,而我需要仅检索ID值,以便在data-id属性中使用。

我试过<%= f.id %>但得到表单生成器错误。正如我所描述的那样,如何在使用表单构建器时获取记录ID?

回答

0

试试这个,而不是f.id

<%= f.object.id %>