Здание формы Rails / acceptpts_nested_attibutes / EMPTY - PullRequest
0 голосов
/ 13 апреля 2011

Продолжение: Построение рельсовых форм Вопросы-ответы / Ответы-ответы

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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...