2010-11-03 11 views
14

Mam formularz Rails, który jest używany do tworzenia i edytowania modelu o relacji has_many. Bardzo dobrze znam typowe formularze z modelami zagnieżdżonymi, ale mój obecny problem wymaga dostępu do renderowania niektórych elementów formularza przy użyciu typowych pomocników FormBuilder i innych elementów HTML przy użyciu danych z samego modelu. Na przykład, mój top forma poziom ma coś takiego:Uzyskiwanie dostępu do zagnieżdżonych atrybutów modelu wewnątrz fields_for bez użycia FormBuilder

<% customer_form.fields_for :customer_images do |images_form| %> 
    <%= render :partial => 'customer_image_show', :locals => { :f => images_form } %> 
<% end %> 

Następnie w formie częściowej, muszę zrobić coś takiego:

<dd><%= f.text_field :image_description %></dd> 

... ale także dostęp atrybuty z modelu customer_images (na przykład identyfikator rekordu customer_image).

Czuję, że to powinno być całkiem proste i po prostu brakuje mi czegoś podstawowego. Każda pomoc jest doceniana. To jest aplikacja Rails 2.3.8.

Odpowiedz

45

Można zadzwonić

f.object 

dostać się do obiektu, który formularz jest związany z.

+0

To działało, dziękuję! –

+1

Jestem zaskoczony, że nie jest to bardziej szczegółowo wyjaśnione w dokumentacji Ruby on Rails, ponieważ jest to bardzo przydatne przy tworzeniu i utrzymywaniu formularzy. Dziękuję monocle! –

0

Nie jesteś pewien, czy to jest to, czego potrzebujesz, ale czy nie możesz uwzględnić danych modelu jako lokalnych? jak:

<%= render :partial => 'customer_image_show', :locals => { :f => images_form, :customer_image => @customer_image } %> 
Powiązane problemy