2011-04-15 53 views
2

我正在製作一個項目,其中我有一個類online_score,它的屬性之一是一個名爲urlonline_score_url對象的數組。我現在做的是以下內容。 的意見/ online_score /新:部分數組元素的表格

<div class="urlInput">  
<% f.fields_for :url do |b| %> 
<%= render "online_score_url_fields", :f => b %> 
<% end %> 
<%= add_url_link "Add Another link", f %> 
</div> 

的意見/ online_score/_online_score_url_fields:

<div class="inputset"> 
<%= f.label :url %> <%= f.url_field :url, :value => "http://www.google.be"%> 
<%= f.label :description %> <%= f.text_field :description %> 
<%= link_to_remove_fields "remove", f %> 
</div> 

我的問題是,現在我希望能夠動態地添加輸入,用於online_score_url對象,我嘗試做JQuery的。我試圖通過渲染局部喜歡這樣做,所以: 助手/ online_scores_helper.rb:

def add_url_link(name, form) 
    link_to_function name do |page|  
    online_score_url = render(:partial => 'online_score_url_fields', :f => form) 
    page << %{ 
    $('.links').append("#{ escape_javascript online_score_url }"); 
    } 
    end 
end 

的問題是那麼f似乎在偏是不確定的。我認爲這與我的觀點中的<% f.fields_for :url do |b| %>行有關,它不會通過動態添加來執行。但我真的不知道如何解決。我想我需要form_for方法的替代方案?怎麼做?

我想我的主要問題是:如何以受控方式遍歷數組,併爲每個元素創建一組輸入形式,如部分AND能夠'添加'一個或多個動態?

謝謝你的時間。

回答

1

嘗試這一個:

<%= render "online_score_url_fields", :locals => {:f => b} %> 

這是怎麼一回事,因爲:f不爲所述渲染方法的參數。所以你需要使用:object,:collection或者具有上面語法的本地人。

這裏的相同:

online_score_url = render(:partial => 'online_score_url_fields', :locals => {:f => form}) 
+0

給出`未定義的方法`描述」爲#`在局部的,由輔助調用。我正在嘗試一些不同的東西,我會讓你更新。 – KarelV 2011-04-15 17:02:07