我想将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_tag
,text_field_tag
并明确初始化值,但我想避免这种情况并保持代码DRY,因为我有很多字段
答案 0 :(得分:1)
您必须将@customer.billing_address
作为参数传递给f.fields_for
才能使其正常运行:
<%= f.fields_for :billing_address, @customer.billing_address do |b| %>