2011-11-23 56 views
1

我在一個Rails 3應用程序看起來像這樣的部分嵌套形式添加一個偏嵌套形式:的Rails 3 - 使用JavaScript

<% f.fields_for :tips, tip do |tip_field| %> 
    <p class="fields"> 
    Course: <%= tip_field.text_field :course %> 
    </p> 
<% end %> 

每個電子郵件可以有多個提示。多行輸入工作正常。
但是,我希望能夠使用Javascript動態添加新行。即我希望能夠點擊「新行」,並在表格中添加一個額外的子項目部分。

fields_for helper正確地創建了輸入行。每一行看起來是這樣的:

Course: <input id="email_tips_attributes_3_course" name="email[tips_attributes][3][course]" size="30" type="text" /> 

如果我可以通過接下來的行號,有沒有像我fields_for可以使用會允許我使用這個部分來動態返回一個新的子項部分的輔助工具。

例如像這樣:

def newtip 
    @tip = Tip.new 
    f = imaginary_form_with_the_next_line_being(5) 
    f.fields_for @tip do |ftip| 
    respond_to do |format| 
     format.html { render :partial=>'tip_fields', :locals => {:tip => @tip, :f=>ftip}} 
    end 
    end 
end 

回答

2

看看下面的railscast。我認爲這是你正在尋找的。

http://railscasts.com/episodes/197-nested-model-form-part-2

的示例代碼鏈接在這裏:https://github.com/ryanb/railscasts-episodes/tree/master/episode-197

注意,它是(寫得很好)的示例代碼。它取決於HTML表格。直接調整它以適用於jQuery的遠程表單和隱藏的輸入,所以您應該能夠對錶單採用的任何結構進行相同的處理。

+0

這是一個很好的資源。瑞恩有更多關於此主題的代碼:https://github.com/ryanb/complex-form-examples – chrismear

+0

謝謝。我看過這個,但無法使它工作。我認爲每個新的formset都可以根據需要從服務器上下載。事實證明,您可以彈出文本作爲javascript函數的參數添加到鏈接中。 – seanyboy