Rails构成building / accepts_nested_attibutes / EMPTY

时间:2011-04-12 21:42:00

标签: ruby-on-rails ruby ruby-on-rails-3 forms datamapper

继续:Rails form building Survey-Questions / Response-Answers

红宝石1.9.2-P180

rails 3.0.6

datamapper 1.1.0

背景 - 我试图从用户的角度创建一个表单构建器(而不是像ruby / rails中的较低级别的'formbuilder')。用户使用浏览器工具创建表单,指定响应区域(例如填写空白区域或多个选项)。该表格可以具有任意数量的问题和问题类型,然后其他用户可以填写表格并使其关联,即调查 - 响应环境。我希望能够在浏览器表单构建器中提取一个gem,以便在任何项目中使用。所以,首先处理最简单的版本,我有一个非常简单的构建器来填写空白的问题类型。只有我试图根据用户填写的调查建立响应表单才停止。

这个控制器:

  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个Questionfield / Answerfield,而不是调查中的问题列表和答案空间。

编辑:

我正在通过以下方式取得一些进展(但它不会在帖子上创建,对我来说是另一个问题并且分开)。它感觉不对,除了'questionfield'之外还没有输出问号,但它似乎与我想做的事情相对应。我最初做了类似的事情,但是没有意识到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个级别对于一个开始来说太多了....我正在尝试简化并稍微改变模型(响应只接受_sted为答案,答案属于响应和问题)所以我有这个,输出但没有正确发布 - 另一个和我的下一个问题,但仍然代表了我正在做的某种前进的进展。

 = 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-accepted-nested-attributes)

0 个答案:

没有答案