2016-10-17 4 views
1

form_forを非アクティブレコードモデルで使用したいと思います。Rails form_forはフィールドに値を設定しません

フィールドのvalueが正しく初期化されないという問題があります。属性が存在する場合でも常に空白です。

たとえば、この作品:

@customer = Customer.retrieve_from_api(id) 
@customer.billing_address.first_name # => "Marco" 

をしかし、フォームが正しく初期化されていません:ところで、私はform_tagtext_field_tagを使用して明示的に値を初期化することができることを知っている

<%= form_for @customer, as: :customer, url: billing_info_path, method: :put do |f| %> 
    ... 
    <%= f.fields_for :billing_address do |b| %> 
    <div class="field"> 
     <%# this is always blank (i.e. the initial value of the field is "") %> 
     <%= b.text_field :first_name %> 
    </div> 

が、私私は多くのフィールドを持っているので、それを避け、コードDRYを保持したいと思います。

+0

ポストCustomerオブジェクトbkunzi01 @この仮想属性 – bkunzi01

+0

を扱う.rbのファイルはこれです:f.fields_forへの引数はそれを動作させるためにhttps://github.com/chargebee/chargebee-ruby/blob/master /lib/chargebee/models/customer.rb – collimarco

答えて

1

あなたは@customer.billing_addressとして渡す必要があります

<%= f.fields_for :billing_address, @customer.billing_address do |b| %> 
関連する問題