使用回形针的多个附件,我无法弄明白

时间:2015-01-16 04:48:56

标签: ruby-on-rails ruby ruby-on-rails-3

创建此支持系统RoR应用程序。

我有这个Ticket模型,目前它确实支持一个带回形针的附件,一切都很好。

但是,我的应用程序需要能够支持每个" Ticket"至少最多3个附件。

我已经搜索过,并且没有找到任何有关如何实现这一点的好方案,任何想法?

谢谢!

1 个答案:

答案 0 :(得分:0)

一种方法是制作一个新模型" Document"属于Ticket,Ticket模型有很多文档:

1-创建文档模型/迁移文件。

add_attachment :documents, :doc

你也应该在文件表中添加外键。

2-在您的故障单模型中添加

has_many :documents
accepts_nested_attributes_for :documents

3-在文档模型中添加以下内容:

belongs_to :ticket
has_attached_file :doc

这样您就可以为每张票添加尽可能多的文档。

修改

对于视图代码。我还没有测试以下代码,但我会执行以下操作:

在控制器中

(@ticket.documents.count .. MAX_DOCUMENTS).each do
    @ticket.build_document
end

在观点中:

<%-@ticket.documents.each_with_index do |document,i|-%> 
    <div class="field">
    <%- if document.new_record? -%>
        <input id="ticket_documents_attributes_<%=i.to_s%>_doc" name="ticket[documents_attributes][<%=i.to_s%>][doc]" type="file" />
    <%- else -%>
        <%= document.doc_file_name %>
        <%= link_to t(:remove), delete_document_ticket_path(id: document.id) %>
    <%- end -%>
    </div>
<%-end-%>

如果需要,您必须实现删除功能。