J'ai donc une application simple comme dans RailsCast about nested forms. et un problème est que lorsque je soumets le formulaire (avec enquête et questions) les questions ne sont pas enregistrées.problème d'attributs imbriqués dans les rails 3 avec mongoid (objets imbriqués ne sont pas sauvegardés)
Mes modèles (enquête, qui a beaucoup de questions):
class Survey
include Mongoid::Document
field :name
has_many :questions, :dependent => :destroy
accepts_nested_attributes_for :questions, :allow_destroy => true
end
class Question
include Mongoid::Document
field :content
belongs_to :survey
end
et Survey Controller:
def new
@survey = Survey.new
3.times {@survey.questions.build}
....
et une vue:
<%= form_for(@survey) do |f| %>
<%= f.fields_for :questions do |builder| %>
<%= builder.label :content, "Question" %><br />
<%= builder.text_area :content, :rows => 3 %><br />
<%= builder.check_box :_destroy %>
<%= builder.label :_destroy, "Remove Question" %>
<% end %>
...
Dans mon journal, j'ai:
Started POST "/surveys" for 127.0.0.1 at 2011-05-24 13:26:51 +0400
Processing by SurveysController#create as HTML
Parameters: {"utf8"=>"G£ô", "authenticity_token"=>"tX0FfMiLbh1BwjuY4CuvAKt2UpTraY3vmdo58ocBnos=", "survey"=>{"name"=>"
Rails", "questions_attributes"=>{"0"=>{"content"=>"Are you fond of Rails?", "_destroy"=>"0"}, "1"=>{"content"=>"Rails is
the best, ha?", "_destroy"=>"0"}, "2"=>{"content"=>"How many railscasts have you watched?", "_destroy"=>"0"}}}, "commit
"=>"Create Survey"}
MONGODB nested_attributes_development['surveys'].insert([{"name"=>"Rails", "_id"=>BSON::ObjectId('4ddb79dba5372914380000
69')}])
Redirected to http://localhost:3000/surveys/4ddb79dba537291438000069