Comment puis-je faire cela fonctionner dans Rails 2.3?Formulaire de modèle imbriqué avec collection dans Rails 2.3
class Magazine < ActiveRecord::Base
has_many :magazinepages
end
class Magazinepage < ActiveRecord::Base
belongs_to :magazine
end
puis dans le contrôleur:
def new
@magazine = Magazine.new
@magazinepages = @magazine.magazinepages.build
end
et la forme:
problème<% form_for(@magazine) do |f| %>
<%= error_messages_for :magazine %>
<%= error_messages_for :magazinepages %>
<fieldset>
<legend><%= t('new_magazine') %></legend>
<p>
<%= f.label :title %>
<%= f.text_field :title %>
</p>
<fieldset>
<legend><%= t('new_magazine_pages') %>
<% f.fields_for :magazinepages do |p| %>
<p>
<%= p.label :name %>
<%= p.text_field :name %>
</p>
<p>
<%= p.file_field :filepath %>
</p>
<% end %>
</fieldset>
<p>
<%= f.submit :save %>
</p>
</fieldset>
<% end %>
est, si je veux présenter une collection de magazinepages, les plaintes activerecord parce qu'il est attendu un modèle et non un tableau.
créer une action:
def create
@magazine = Magazine.new params[:magazine]
@magazine.save ? redirect_to(@magazine) : render(:action => 'new')
end
Pouvez-vous poster le message d'erreur complet avec la trace de la pile? – ryanb
Il doit avoir été une syntaxe burp, ça fonctionne parfaitement –