İlk raylar uygulamasında, yuvalanmış bir nesne formu oluşturmak için form_for
ve fields_for
kullanmayı deniyorum. Şimdiye kadar çok iyi, ancak fields_for
bloğundayken alt nesneye nasıl erişileceğini anlayamıyorum. Alt nesnede bir alanı, kullanıcı talimatlarında göstermek istediğim verilerle önceden doldurdum.Raylar - form_for ve fields_for öğelerini kullanarak, alanlar_dosyaları içindeyken alt nesneye nasıl erişirsiniz?
Modelleri
Garaj:
has_many :cars, :dependent => :destroy
accepts_nested_attributes_for :cars
Araç:
belongs_to :garage
Garaj Kontrolör
Gördüğünüz gibi_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 %>
, oluşturucu bloğu için iç: arabalar, benim kullanıcı kılavuzunda, alanını göstermek istiyorum: car.stall_number
(benim denetleyicisi nüfuslu) bir tamsayı ile:
<p>Enter license for car parked in stall: <%= car.stall_number%></p>
Ben birçok farklı fikirleri denedim: @car.stall_number
, object.car.stall_number
vs. hiçbir sevinç. Birden fazla arama ve fields_for
kaynak koduna bir göz atmak benim anlayışıma yardımcı olmamıştır. Herhangi bir rehberlik için minnettarım.
Güncelleme: açıklama için Dan'in öneri başına ben builder.stall_number
denedi ama sizin için bu değişkeni doldurmadan car
erişmek istediğiniz çünkü çalışmıyor çalışıyoruz bir
NoMethodError: undefined method 'stall_number' for #<ActionView::Helpers::FormBuilder:0x00000102a1baf0>
Bu nesnenin referansı: ilişkiler hep bozuldu @CharlieMezak –
Bu benim için çalıştı! –