Rails form_for不会使用值填充字段

时间:2016-10-17 15:56:05

标签: ruby-on-rails ruby-on-rails-4

我想将form_for与非主动记录模型一起使用。

问题是字段的value未正确初始化:即使属性存在,它也始终为空。

例如,这有效:

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

但表单未正确初始化:

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

BTW我知道我可以使用form_tagtext_field_tag并明确初始化值,但我想避免这种情况并保持代码DRY,因为我有很多字段

1 个答案:

答案 0 :(得分:1)

您必须将@customer.billing_address作为参数传递给f.fields_for才能使其正常运行:

<%= f.fields_for :billing_address, @customer.billing_address do |b| %>