2016-09-19 8 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:問題は、私は車両のデータベースレコードのIDを表示できませんよです

<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> 

簡単なフォームビルダーを使用していて、単に@loan.vehicles.each do |vehicle|を使ってローンレコードをループしているわけではないので、私が "data-id"属性でやろうとしているように、ネストされたフォームを編集します。

私はレコードIDを表示することができますが、入力フォームフィールド項目内に表示されますが、data-id属性内で使用するにはID値のみを取得する必要があります。

私は<%= f.id %>を試しましたが、フォームビルダーエラーが発生しました。私が記述したようにフォームビルダーを使ってレコードIDを取得するにはどうしたらいいですか?

答えて

0

代わりf.idの、これを試してみてください:

<%= f.object.id %> 
関連する問題