2015-07-10 84 views
0

我在写一个rails应用程序,其中有一个表单来添加学生信息。表单中包含姓名,年龄,地址等文本字段。通常,当您按下提交按钮时,此信息将提交给服务器,您可以在页面刷新时创建新学生。以轨道形式将数据收集到变量中

我不想要这个。我希望当提交按钮被按下时,它会将这些数据保存在一个变量中(或其他任何方式),然后我可以继续添加下一个学生信息。我可以多次继续。添加n个学生后,我会按下完成按钮,并将所有n个学生的数据提交给服务器。这可能吗?

+0

此问题的标准答案是使用嵌套属性。这在[Railscast 196](http://railscasts.com/episodes/196-nested-model-form-revised)中有很好的解释。 –

+0

也许[#217多步骤形式](http://railscasts.com/episodes/217-multistep-forms)? – mysmallidea

+0

或使用javascript ... http://thecodeplayer.com/walkthrough/jquery-multi-step-form-with-progress-bar – mysmallidea

回答

0
i am adding an example here... 

a.first name and last name with dynamically add n number of address details and phone number 
b.have a separate table for name, address and phone. 
c.one to many relation 
d name can have number of address and phone.(have name id as foreign key in address and phone table) 

ex: 
first name = tom, last name = jerry, address:xx1, phone:yy1,address:xx2, phone:yy2. 

store it like 

first name = tom, last name = jerry, address:xx1, phone:yy1 
first name = tom, last name = jerry, address:xx2, phone:yy2 



sample erb file 

    <%= form_tag(controller: "contacts", action: "create", method: "post",) do %> 


    <blockquote> 
    <%= label_tag :first_name %> 
    <%= text_field_tag :first_name, params[:first_name] %> 

    <%= label_tag :last_name %> 
    <%= text_field_tag :last_name, params[:last_name] %> 
    </blockquote> 

     <blockquote> 
    <h3>Adress Details </h3> 
    <div id="skillSet1"> 
     <%= render 'address' %> 
    </div> 
    <a href="javascript:;" id="addNewTag1">Add Additional Address Details</a> 

    <div class="hide" id="new_skills_form1"> 
     <%= render partial: "address", locals: {skill: false} %> 
    </div> 
     </blockquote> 

    <blockquote> 
    <h3>Phone Number </h3> 
    <div id="skillSet"> 
     <%= render 'phone' %> 
    </div> 
    <a href="javascript:;" id="addNewTag">Add Additional Phone Details</a> 

    <div class="hide" id="new_skills_form"> 
     <%= render partial: "phone", locals: {skill: false} %> 
    </div> 

    </blockquote> 
    <div class="actions"><%= submit_tag 'Save' %></div> 
    <div><%= link_to 'Back', :action => :index %></div> 
<% end %> 

javascript 

    $(document).ready(function(){ 
    $("#addNewTag").click(function(){ 
     $("#skillSet").append($("#new_skills_form").html()); 
    }); 
}); 

$(document).ready(function(){ 
    $("#addNewTag1").click(function(){ 
     $("#skillSet1").append($("#new_skills_form1").html()); 
    }); 
});