2011-12-15 9 views
3

私はライアンのベイツneted_formsのエピソード1に従っています。レールのキャストから& 2、私はすでに&の前にプロジェクトのネストされたフォーム機能を実装しました私の新しいプロジェクトでは、私はレールキャストから同じ参照を使用していますが、削除するフィールドが動作していない&を削除します。ここでremove_fields&addフィールドリンクがレールのネストされたフォームで動作しない3.0.9

は私が連絡先

<div class="fields"> 
<p class="lable">Contact Name</p> 
<p class="field"><%= f.text_field :contact_name %></p></br> 

<p class="lable">Mobile Number</p> 
<p class="field"><%= f.text_field :contact_mobile_number %></p></br> 

<p class="lable">Email Address</p> 
<p class="field"><%= f.text_field :contact_email %></p></br> 
<p><%= link_to_remove_fields "remove", f %></p> </div> 

私はこの方法を書いたアプリケーションヘルパーのため

 <div class="TabbedPanelsContent"> 
      <%= f.fields_for :contacts do |builder| %> 
      <%= render "contact_fields", :f => builder %> 
      <% end %> 
     <p><%= link_to_add_fields "Add Contact", f, :contacts %></p> 

      </div> 

フィールドのリンクを追加部分を使用していたのフォーム私のモデル

has_many :contacts, :dependent => :destroy 
accepts_nested_attributes_for :contacts, :reject_if => lambda { |a| a[:contact_name].blank? },  :allow_destroy => true 

です

私は上記のコード値は、このコード

<p><input type="hidden" value="false" name="customer[contacts_attributes][1][_destroy]" id="customer_contacts_attributes_1__destroy"><a onclick="remove_fields(this); return false;" href="#">remove</a></p> 

の実行中に生成された取得されたHTML内の1つの問題を発見した放火犯を使用

function remove_fields(link) { 
    $(link).previous("input[type=hidden]").value = "1"; 
    $(link).up(".fields").hide(); 
} 

function add_fields(link, association, content) { 
var new_id = new Date().getTime(); 
var regexp = new RegExp("new_" + association, "g") 
$(link).up().insert({ 
before: content.replace(regexp, new_id) 
}); 
} 

を次のように

application.jsは=です"false"は問題を引き起こしている可能性があります。&私の前のコードは値= "1"を生成しているので、値= "1"でなければなりません。誰でも上記の問題に私を助けることができますか?

答えて

0

親モデルでallow_destroy => trueを追加するまで、削除に問題がありました。

1

これはapplication.jsファイルに

関数remove_fields(リンク){
$(リンク).prevを( "入力[タイプ=隠さ]")JS PUTヴァル( "1")。
$(リンク).closest( "。fields")。hide(); }

function add_fields(リンク、関連、コンテンツ){var new_id = new Date()。getTime(); var regexp = new RegExp( "new_" +関連、 "g"); $(link).parent()。before(content.replace(regexp、new_id)); }

関連する問題