2014-09-06 2 views
0

현재 해결책으로는 사용자가 첨부 파일을 삭제할 수 있도록 edit 양식에 체크 박스를 넣을 수 있습니다. 그러나 사용자에게 파일 업로드 여부, 파일 이름 등을 알려주지 않으므로 삭제 여부를 결정할 수 있습니다.업로드 된 파일이 편집 양식에 있음을 나타냅니다. - paperclip

바로 지금 양식이 이렇게 보입니다. 당신이 볼 수 있듯이 첫 번째 material 기존 하나, 다음 3는 그들을 구별하는 것은 매우 어렵다

def edit 
    @post = Post.find(params[:id]) 
    3.times { @post.post_materials.new } 
    end 

때문이다. 이상적으로는 첫 번째 소재 파일 이름을 어떻게 든 표시하고 싶습니다. 당신이 here을 볼 수

http://i.imgur.com/9IgwbV2.png

<%= form_for @post, :html => { :multipart => true } do |f| %> 

    <%= f.label :title %> 
    <%= f.text_field :title %> 

    Materials: 
    <ul> 
    <%= f.fields_for :materials, :html => { :multipart => true } do |materials_form| %> 
     <li> 
     <%= materials_form.label :asset %> 
     <%= materials_form.file_field :asset %> 

     <%= materials_form.label :_destroy, class: "checkbox inline" do %> 
      Remove attachment <%= materials_form.check_box :_destroy %> 
     <% end %> 
     </li> 
    <% end %> 
    </ul> 
    <%= f.submit "Submit", class: "btn btn-large" %> 
<% end %> 

답변

1

는 실행 클립의 generator은 모델에 4 개 속성을 추가 마이그레이션을 생성합니다. 이러한 특성은 다음과 같습니다 당신이 발전기 이런 식으로 실행 한 경우

<attachment>_file_name 
<attachment>_file_size 
<attachment>_content_type 
<attachment>_updated_at 

그래서 : 당신의 PostMaterial 모델에 rails generate paperclip post_material asset을, 당신은 이러한 특성을 갖습니다 :

asset_file_name 
asset_file_size 
asset_content_type 
asset_updated_at 

그런 다음 코드에 당신이 뭔가를 할 수 이런 식으로 :

+0

요점은 'materials_form.object'를 사용하여'material'에 액세스 할 수 있다는 것입니다. 고맙습니다! – Heisenberg