2017-09-03 81 views
0

嗨,大家好,我使用的是非常有用的寶石:https://github.com/nathanvda/cocoon如何在點擊link_to_add_association之後才顯示關聯字段?

我在這裏的目標是要顯示我的聯想領域,只有當我在link_to_add_association點擊。

當我加載我的表單頁面時,我不應該顯示字段。

有誰知道該怎麼做?

乾杯

文件部分

<h4><%= t('.title') %></h4> 

<ul class="documents-list"> 
    <%= f.fields_for :property_documents do |property_document_fields| %> 
    <% unless property_document_fields.object.new_record? %> 
     <%= render '/shared/properties/property_documents_list', f: property_document_fields %> 
    <% end %> 
    <% end %> 
</ul> 

<ul class="list-group property-documents"> 
    <%= f.fields_for :property_documents do |property_document_fields| %> 
    <% if property_document_fields.object.new_record? %> 
     <%= render '/shared/properties/property_document_fields', f: property_document_fields %> 
    <% end %> 
    <% end %> 
</ul> 

<span class="pull-left"> 
    <%= link_to_add_association t('.add_document'), 
           f, 
           :property_documents, 
           partial: 'shared/properties/property_document_fields', 
           class: 'btn btn-primary', 
           data: { 
           association_insertion_node: '.property-documents', 
           association_insertion_method: :append 
           } %> 
</span> 

文件字段

<li> 
    <%= link_to admin_property_path(@property.id, property: { property_documents_attributes: { id: f.object.id, "_destroy" => true }}), remote: false, confirm: "Really delete #{f.object.name} ?", method: :put do %> 
    <i class="fa fa-trash" style="padding-right: 10px; color: #d9534f;"></i> 
    <% end %> 
    <% if f.object.document.present? %> 
    <%= link_to f.object.name, f.object.document.url, target: :_blank %> 
    <% else %> 
    <%= link_to f.object.name, url_with_protocol(f.object.url), target: :_blank %> 
    <% end %> 
</li> 

回答

0

繭不會默認生成的嵌套關係。也許你做你的文檔模型或控制器,如

document.property_documents.build 
+0

已經這樣做了,如果你看到,我只顯示關聯字段,如果它是一個新的記錄。 –

+0

你總是用''除非property_document_fields.object.new_record?'表達式或者什麼來顯示這個塊。如果你這樣做了,你需要刪除'build'方法 –

+0

我確實顯示了只有當它是新記錄時才添加新關聯的表單,如下所示:

    <%> = f.fields_for:property_documents do | property_document_fields | %> <%if property_document_fields.object.new_record? %> <%=渲染 '/共享/屬性/文檔/ property_document_fields',F:property_document_fields%> <% end %> <% end %>

0

嘗試了很多東西做好後,我發現這種解決方案

在控制器中刪除property_photos.build從編輯方法

和形式,就讓它像:

<ul class="list-group property-photos"> 
    <%= f.fields_for :property_photos do |property_photo_fields| %> 
    <% if property_photo_fields.object.new_record? %> 
     <%= render '/shared/properties/photos/property_photo_fields', f: property_photo_fields %> 
    <% end %> 
    <% end %> 
</ul> 

歡呼

相關問題