0

我正在尝试构建一个应用程序,人们可以在其中注册某些程序。

通过申请表,我需要有不同类型的问题,一些文本字段,一些文本区域,一些选择和一些复选框。

现在,我已经创建了一个带有内容的模型问题。我正在考虑创建一个问题类型模型或不同的模型(每种类型的问题一个),以便在创建表单时,用户可以选择他想问的问题的类型。

这是问题模型:

class Question < ActiveRecord::Base
belongs_to :post
end

问题表:

create_table "questions", force: true do |t|
t.datetime "created_at"
t.datetime "updated_at"
t.integer  "post_id"
t.text     "content"
end

现在,在 _form.rb 中:

<%= form_for @post do |f| %>
<%= f.fields_for :questions do |qform| %>
    <% render 'question_fields', :f => qform %>
    <% end %>
    <p><%= link_to_add_fields "Add text area", f, :questions %></p>
<% end %>

_question_fields.rb:

    <p>
      <%= f.label :content, "Question" %>
      <%= f.text_area :content %><br>
      <%= f.check_box '_destroy' %>

    </p>

javascript函数是:

In application_helper.rb : 

    def link_to_add_fields(name, f, association)
    new_object = f.object.class.reflect_on_association(association).klass.new
    fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
    render(association.to_s.singularize + "_fields", :f => builder)
    end
    link_to_function(name, "add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")")
    end

In application.js :

    function add_fields(link, association, content) {
    var new_id = new Date().getTime();
    var regexp = new RegExp("new_" + association, "g")
    $(link).parent().before(content.replace(regexp, new_id));
    }

怎么做到呢 ?

4

1 回答 1

0

如果您想开发调查、问卷、测验..那么请尝试Surveyor Gem。它允许您在应用程序中生成问卷。看看这个:

https://github.com/NUBIC/surveyor

于 2013-07-19T14:29:06.260 回答