2010-10-27 124 views
3

我正在構建一個動態表單生成器..而我有一個問題,我似乎無法修復。rails fields_for with ajax

所以我有所謂的「形式」 形式可以有「田」一個數據庫表..

的問題是,當用戶創建一個新的「場」(點擊添加場),那麼它應該阿賈克斯這個領域的新領域。

的問題是,我不能只是做這樣的事情:
<%= Form.fields_for Field.new do |field| %>
  <%= field.text_field :name%>
<% end %>

沒有任何人有一個想法?是的,我看railscasts,是的,我用Google搜索,是的,我發現了「複合形態在github回購。

,但沒有運氣(還)

回答

6

如果想在所有的JavaScript方法(而不是調用您的服務器產生字段名),那麼基本上你只需要增加字段名稱的任何新的領域。

舉例來說,如果你有

class Form < ActiveRecord::Base 
    has_many :fields 
    accepts_nested_attributes_for :fields 

和形式的HTML有有一些輸入字段像

<label for="form_fields_attributes_0_name"> 
<input id="form_fields_attributes_0_name" name="form[fields_attributes][0][name]" type="text" /> 

,那麼你需要寫一些JavaScript,使它看起來像

<label for="form_fields_attributes_1_name"> 
<input id="form_fields_attributes_1_name" name="form[fields_attributes][1][name" type="text" /> 

你可以做這樣的事情

$('#form_fields_attributes_1_name').attr('id').split('_'); 

$('#form_fields_attributes_1_name').attr('name').split(/\]\[/); 

在這些數字得到。

下面是一個example這是重構here.

+0

OHW ..我愛你! ;)THanxs! :)(如果我可以給更多的點..我會;)) – heldopslippers 2010-10-27 13:52:48