创建此支持系统RoR应用程序。
我有这个Ticket模型,目前它确实支持一个带回形针的附件,一切都很好。
但是,我的应用程序需要能够支持每个" Ticket"至少最多3个附件。
我已经搜索过,并且没有找到任何有关如何实现这一点的好方案,任何想法?
谢谢!
答案 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-%>
如果需要,您必须实现删除功能。