Diese Frage bezieht sich auf Rails 4/postgresql und die App wird auf Heroku gehostet.Bearbeiten/erstellen verschachtelte Ressourcen in Formtastic (Rails)
Ich mache eine Quiz-Funktionalität auf einer Website und ich frage mich, wie man die Formulare (mit Formstastic) am besten implementiert, um dies so einfach wie möglich zu machen. Ich habe drei Modelle:
- Quiz (has_many: quiz_questions), z.B. "Testen, um zu sehen, wie toll Sie sind"
- QuizQuestion (gehört zu: Quiz, has_many: quiz_options). z.B. "1. Welche ist Ihre Lieblingsfarbe?"
- QuizOption (gehört zu: quiz_question). z.B. "Blue"
ich die Formulare wie folgt aufgebaut haben:
<%= semantic_form_for([:admin, @quiz], :url => admin_quiz_path(@quiz.id)) do |f| %>
<%= render 'form' , :f => f %>
<% end %>
wo die Form wie folgt aussieht:
<%= f.inputs %>
<h3>Quiz questions</h3>
<%= f.semantic_fields_for :quiz_questions do |qq_f| %>
<%= qq_f.inputs %>
<h4>Quiz options</h4>
<%= qq_f.semantic_fields_for :quiz_options do |qqo_f| %>
<%= qqo_f.inputs %>
<% end %>
<% end %>
<%= f.actions do %>
<%= f.action :submit %>
or go <%= link_to 'back', admin_quizzes_path %>
<% end %>
Es scheint jedoch nicht die Art und Weise zu arbeiten, Ich will. Ich erwarte, die Felder von QuizQuestion und QuizOptions in dieser Form zu sehen (es gibt Objekte für diese), aber ich nicht.
Noch wichtiger ist, dass ich in der Lage wäre, eine neue QuizQuestion und anschließend QuizOption in dieser Form zu erstellen. Es muss nicht unbedingt jQuery/ajax oder irgendetwas anderes sein, aber ich möchte alles von diesem Formular aus machen.
Grundsätzlich würde ich meinen Workflow sein wie mag:
- ein Quiz erstellen und Werte hinzufügen. Klicken Sie auf Erstellen.
- Fügen Sie QuizQuestion Nummer eins hinzu und fügen Sie die Werte hinzu (wie "name label"). Klicken Sie auf Erstellen.
- Fügen Sie QuizOption hinzu, das sich auf QuizQuestion number 1 und seine "name label" bezieht. Klicken Sie auf Erstellen.
- Wiederholen Sie für QuizQuestion/QuizOption, bis das Quiz abgeschlossen ist.
Wie kann ich das tun?
Arbeitete wie ein Charme, vor allem mit der Verwendung von "Kokon". Vielen Dank! – Christoffer