2015-07-10 87 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()); 
    }); 
});