我有一个名为“贷款”的模型,它有很多:车辆。贷款的模型实现通过嵌套表单(通过simple_form gem提供)接受车辆的嵌套属性。
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,正如我在“data-id”属性中所做的那样,因为我使用的是简单的表单构建器而不是简单的使用@loan.vehicles.each do |vehicle|
循环浏览贷款记录。
使用隐藏字段我能够显示记录ID,但是,它显示在输入表单字段项中,而我只需要检索ID值,以便在data-id属性中使用。
我已尝试过<%= f.id %>
,但收到表单生成器错误。如上所述,如何在使用表单构建器时获取记录ID?
答案 0 :(得分:0)
试试这个,而不是f.id
:
<%= f.object.id %>