首页 > 解决方案 > Rails 回形针和文件类型

问题描述

在我的 Rails 应用程序中,用户可以上传文档(pdf、png、doc ie...),但分为几个类别(用于业务规则)。例如,类型 1 是“身份证”,类型 2 是“简历”......即.. Whit 回形针我创建模型和控制器(和数据库表)来存储这些文档,并且我添加了一个自定义字段“typedoc”(整数) 我想根据上传的“类型”文件设置带有整数的 typedoc 字段...

鉴于此,我为每个“类型”重复以下代码。如何为每种类型更新文档表中的自定义字段?如何将 typedoc var 传递给控制器​​进行更新?

提前致谢

    <%= form_for @user, url: user_documents_path(@user) , method: 'post', 
    html: {multipart: true} do |f| %> 

                        <div class="row">
                            <div class="col-md-4 form-group">
                                <span class="btn btn-default btn-file">
                                    <i class="fa fa-cloud-upload" aria- 
   hidden="true"></i> Choose doc 1
                                        <%= file_field_tag "documents[]", 
    type: :file, multiple: true %>

                                </span>
                            </div>                                 

                            <div class="col-md-4 body ">    
                                <%= f.submit "Add id card", class: "btn 
    btn-form" %>                                              
                            </div>
                            <div class="col-md-4 form-group" 
    id="documents"><%= render 'documents/documents_list' %></div>
                        </div>
                    <% end %>  

...

标签: ruby-on-railspaperclip

解决方案


您可以使用此表单的 url 传递 typedoc

例如,用户单击upload id_card链接,然后您可以将其传递为

new_user_document_path(typedoc: 1)

并以形式动态传递 typedoc -

<%= form_for @user, url: user_documents_path(@user) , method: 'post', 
  html: {multipart: true} do |f| %> 
  <div class="row">
    <div class="col-md-4 form-group">
      <span class="btn btn-default btn-file">
      <i class="fa fa-cloud-upload" aria- 
        hidden="true"></i> Choose doc 1
        <%= f.file_field :documents, multiple: true, name: "user[documents][]"%>
      </span>
    </div>
    <!-- set value accordinly if you according to type of document  eg: -type 1 is "id card", type 2 is "resume"... ie. -->
    <%= f.hidden_field :typedoc, value: params[:typedoc]%> 
    <div class="col-md-4 body ">    
      <%= f.submit "Add id card", class: "btn 
        btn-form" %>                                              
    </div>
    <div class="col-md-4 form-group" 
      id="documents"><%= render 'documents/documents_list' %></div>
  </div>
<% end %> 

推荐阅读