Form_for ve iç içe geçmiş kaynaklar hakkında iki bölümden oluşan bir sorum var. Diyelim ki bir blog motoru yazıyorum ve bir makaleyle bir yorum ilişkilendirmek istiyorum. İç içe geçmiş bir kaynağı şu şekilde tanımladım:
map.resources :articles do |articles|
articles.resources :comments
end
Yorum formu, makalelerin show.html.erb görünümündedir, makalenin altında, örneğin şu şekilde:
<%= render :partial => "articles/article" %>
<% form_for([ :article, @comment]) do |f| %>
<%= f.text_area :text %>
<%= submit_tag "Submit" %>
<% end %>
Bu bir hata verir, "Sıfır için kimlik çağrısı, yanlışlıkla vb." Ben de denedim
<% form_for @article, @comment do |f| %>
Bu, doğru şekilde oluşturulur, ancak f.text_area'yı yorumun yerine makalenin 'metin' alanıyla ilişkilendirir ve bu metin alanındaki makale.text niteliği için html'yi sunar. Bu yüzden ben de bunu yanlış yapıyorum. İstediğim şey, 'gönder'in' CommentsController'da yaratma eylemini çağıracağı, parametrelerde bir makale_kimliği, örneğin / makaleler / 1 / yorumlar için bir gönderi isteği gibi bir form.
Sorumun ikinci kısmı, başlamak için yorum örneğini oluşturmanın en iyi yolu nedir? MakalelerController'ın gösteri eyleminde bir @ yorum oluşturuyorum, bu nedenle bir yorum nesnesi, form_for helper için kapsam dahilinde olacak. Daha sonra CommentsController'ın yaratma eyleminde, form_for'dan aktarılan parametreleri kullanarak yeni @ yorum oluşturuyorum.
Teşekkürler!