Rails: utilizando form_for y fields_for, ¿cómo accede al subobjeto mientras está en el bloque fields_for?
En mi primera aplicación de rieles estoy tratando de usarform_for
yfields_for
para crear un formulario de objeto anidado. Hasta ahora todo bien, pero no puedo entender cómo acceder al subobjeto mientras estoy en lafields_for
bloque. He rellenado previamente un campo en el subobjeto con datos que quiero mostrar en las instrucciones del usuario.
Modelos
Garaje
has_many :cars, :dependent => :destroy
accepts_nested_attributes_for :cars
Coche
belongs_to :garage
Garage Controller
def new
@garage = Garage.new
for i in 1..5
@garage.cars.build :stall_number => i
end
end
_form.html.erb
<%= form_for @garage do |f| %>
<%= f.label :title, "Garage Name" %><br />
<%= f.text_field :title %>
<% f.fields_for :cars do |builder| %>
<p>Enter license for car parked in stall: <%= car.stall_number %></p>
<%= f.label :license, "License #:" %><br />
<%= f.text_field :license %>
<%= end %>
<%= end %>
omo puede ver, dentro del bloque de construcción para: automóviles, quiero mostrar, en mis instrucciones de usuario, el campo:car.stall_number
(rellenado en mi controlador con un número entero):
<p>Enter license for car parked in stall: <%= car.stall_number%></p>
He probado muchas ideas diferentes:@car.stall_number
, object.car.stall_number
, etc. No hay alegría. Múltiples búsquedas y un vistazo a lafields_for
código fuente no ha ayudado a mi comprensión. Agradecería cualquier orientación.
Actualizar Para aclarar, según la sugerencia de Dan, he intentadobuilder.stall_number
pero da como resultado una
NoMethodError: undefined method 'stall_number' for #<ActionView::Helpers::FormBuilder:0x00000102a1baf0>