Je regarde le railscasts et j'ai essayé d'écrire l'exemple de mes propres mains. Mais j'ai eu un problème avec l'étape de: Création du formulaire.Impossible de créer une association entre les nouveaux objets pour les modèles imbriqués dans les rails
Il faut créer une association entre enquête et question. Mais cette association ne peut être établie dans mon application rails donc pas de questions apparaissent sous la forme
Voici les codes
modèle d'enquête:
class Survey < ActiveRecord::Base
attr_accessible :name, :questions
has_many :questions, :dependent => :destroy
accepts_nested_attributes_for :questions
end
modèle Question:
class Question < ActiveRecord::Base
attr_accessible :context, :survey_id
belongs_to :survey
end
méthode Surveys_Controller:
# GET /surveys/new
# GET /surveys/new.json
def new
@survey = Survey.new
3.times {@survey.questions.build}
respond_to do |format|
format.html # new.html.erb
format.json { render json: @survey }
end
end
partie question _form.html.erb
<% f.fields_for :questions do |builder|%>
<%= builder.label :context, "Question" %><br />
<%= builder.text_area :context, :rows => 3 %>
<% end %>
Voici ce que je suis arrivé de test dans la console
irb(main):010:0> @survey = Survey.new
=> #<Survey id: nil, name: nil, created_at: nil, updated_at: nil>
irb(main):011:0> 3.times {@survey.questions.build}
=> 3
irb(main):012:0> @survey.questions
=> [#<Question id: nil, survey_id: nil, context: nil, created_at: nil, updated_a
t: nil>, #<Question id: nil, survey_id: nil, context: nil, created_at: nil, upda
ted_at: nil>, #<Question id: nil, survey_id: nil, context: nil, created_at: nil,
updated_at: nil>]
Cela pourrait soyez à l'écart de votre problème, mais j'ai remarqué que vos valeurs 'attr_accessible' contiennent des': questions'. Pour les attributs imbriqués, cela devrait être ': questions_attributs' si je ne me trompe pas. – jordanandree
Vous avez raison, mec. Il est utilisé avec mass_assignment. J'ai corrigé ce problème mais merci pour votre avis :) Mais je me demande s'il y a un problème de sécurité? – code4j