前言:我是 REAL 铁杆新手。我正在使用它开发我的第一个Web应用程序,因此即使是基本概念对我来说也很难理解。
说完了,我的问题是:
我计划使用Paperclip(和Paperclip)在我的应用程序中存储pdf(因为我希望pdf大约为0.5mb)。 Paperclip的github教程对我来说没有一件事情是明确的:
非常感谢,我自己无法解决这两个问题。
编辑:这是我试过的
<div class="field">
<%= f.label :pdf %>
<%= f.file_field :pdf %>
</div>
附加文件的按钮就在那里,但它似乎没有用,文件也没有保存。
EDIT2: 按照建议的解决方案,现在我的服务器确实保存了我附加到表单的pdf文件。
现在我想了解为什么关联的url(来自pdf)直接将我发送到一个页面,系统会询问在哪里保存pdf(也就是说它自动下载)。这是代码的相关部分:
<td><%= (link_to 'Related file', task.pdf.url, :target => "_blank") if task.pdf.exists? %></td>
这位于app / views / tasks / index.html.erb
中答案 0 :(得分:1)
您要将pdf附件添加到表中的迁移(在此示例中,我将附件PDF添加到Documents
表)应如下所示:
class AddAttachmentPdfToDocuments < ActiveRecord::Migration
def self.up
change_table :documents do |t|
t.attachment :pdf
end
end
def self.down
remove_attachment :documents, :pdf
end
end
创建此迁移后,您需要运行rake db:migrate
,以便将pdf列实际添加到表中。
回形针的型号代码(例如,我使用A documents
模型)应如下所示:
has_attached_file :pdf, :use_timestamp => false
validates_attachment_content_type :pdf, :content_type => ['application/pdf', 'text/plain']
要添加pdf,您需要在表单中添加输入,例如,这是用于请求pdf附件的循环:
<%= form_for @document do |f| %>
<%= f.input :title, label: "Title" %>
<%= f.input :pdf, label: "Upload document:" %>
<%= f.button :submit %>
<% end %>
在你的控制器中(再次使用documents
作为控制器)你需要传递参数:pdf
。您的私有方法看起来像:
def documents_params
params.require(:document).permit(:title, :pdf)
end
注意,我使用document
作为我的控制器,模型,表单等,因此如果您使用的是其他名称,则需要更改它。
如果您有问题,请发表评论,我会尽力帮助