【发布时间】:2016-08-02 14:17:38
【问题描述】:
这个问题是关于 Rails 4/postgresql 的,该应用程序托管在 Heroku 上。
我正在网站上制作测验功能,我想知道如何最好地实现表单(使用 Formtastic)以使其尽可能简单。我有三个模型:
- 测验(has_many :quiz_questions),例如“测试一下你有多棒”
- 测验问题(belongs_to :quiz, has_many :quiz_options)。例如“1. 你最喜欢哪种颜色”)
- 测验选项(belongs_to :quiz_question)。例如“蓝色”
我已经设置了这样的表格:
<%= semantic_form_for([:admin, @quiz], :url => admin_quiz_path(@quiz.id)) do |f| %>
<%= render 'form' , :f => f %>
<% end %>
表单如下所示:
<%= 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 %>
然而,似乎并没有按照我想要的方式工作。我希望能够以这种形式看到 QuizQuestion 和 QuizOptions 的字段(这些字段有对象),但我没有。
更重要的是,我希望能够以这种形式创建一个新的 QuizQuestion 和随后的 QuizOption。它不一定是 jQuery/ajax 或其他任何东西,但我想从这个表单中完成所有这些。
基本上,我希望我的工作流程是这样的:
- 创建一个测验并向其添加值。点击创建。
- 添加 QuizQuestion 第一个并向其添加值(如“名称标签”)。点击创建。
- 添加与第一个 QuizQuestion 相关的 QuizOption 及其“名称标签”。单击创建。
- 重复 QuizQuestion/QuizOption 直到测验完成。
我该怎么做?
【问题讨论】:
标签: ruby-on-rails forms ruby-on-rails-4