Продолжение: Построение рельсовых форм Вопросы-ответы / Ответы-ответы
ruby-1.9.2-p180
рельсы 3.0.6
datamapper 1.1.0
Справочная информация. Я пытаюсь создать конструктор форм с точки зрения пользователя (в отличие от чего-то более низкого уровня в ruby / rails как «formbuilder»).Пользователь создает форму, используя в браузере инструменты, задает области для ответа (например, заполняет пустую область или несколько вариантов).Эта форма может иметь любое количество вопросов и типов вопросов, после чего другие пользователи могут заполнять форму и связывать ее, то есть среду ответа на опрос.Я хотел бы иметь возможность извлекать конструктор форм в браузере для использования в любом проекте.Итак, работая над самой простой версией, у меня есть очень простой конструктор для заполнения пустых типов вопросов.Только я был остановлен, пытаясь построить форму ответа на основе опроса для заполнения пользователем.
Этот контроллер:
def completesurvey
@survey = Survey.get(params[:id])
@response = @survey.responses.new
@questions = @survey.questions.all
end
Эта форма:
= simple_form_for @response do |f|
= f.input :whodid
= f.simple_fields_for :questions_attributes do |g|
= g.label :questionfield
%br
= g.simple_fields_for :answers_attributes do |a|
= a.input :answerfield
дает только 1 Поле вопроса / Поле ответа, а не список вопросов в опросе и место для ответа.
РЕДАКТИРОВАТЬ:
Я добился определенного прогресса в этомниже (но он не создается на почте, другой вопрос для меня и отдельно).Это не кажется правильным, пока не выводит поле вопроса как что-либо кроме «поля вопроса», но, похоже, оно соответствует тому, что я искал.Сначала я делал что-то похожее, но не знал о fields_for и чтении и примерах, которые я видел за этим, что указывало на то, что fields_for не требовал итерации по группе, т.е.
= simple_form_for @response do |f|
- @questions.each do |qq|
= f.simple_fields_for :questions_attributes, :index=>qq.id do |q|
= q.label :questionfield
%br
= q.simple_fields_for :answers_attributes do |a|
= a.input :answerfield
= f.button :submit
ВТОРОЕ РЕДАКТИРОВАНИЕ:
Понимание 3-х уровней вложенности слишком много для начала .... Я пытаюсь немного упростить и немного изменить модели (только ответ)Accepts_nested для ответов, ответы принадлежат ответу и вопросу), поэтому у меня есть это, которое выводит, но не публикует должным образом - еще один и мой следующий вопрос, но все еще представляет некоторый прогресс вперед в том, что я делаю.
= simple_form_for @response do |f|
- @questions.each do |q|
= q.questionfield
%br
= f.simple_fields_for :answers_attributes, :index=>q.id do |a|
= a.input :answerfield
= f.button :submit
Любой вклад все еще приветствуется, я начинаю понимать, что мне нужно делать, но я что-то упускаю.Как я уже сказал: учебный проект.
(с использованием rails3, datamapper, dm-acceptpts-nested-attribute)