我有两种使用Paperclip的方案,但我不确定如何调整设置或是否可能甚至是必要的。需要更多经验丰富的专业人士的建议。
首先,我有一个用于上传的文档模型,例如PDF,将被定义:
has_attached_file :document...
这会给我一些像@ document.document_file_name这样的列名。无论如何,我可以改为使用@ document.file_name吗?
其次,我有Gallery.rb,它有很多Picture.rb。同样的情况也在这里。我可以避免使用@ picture.picture_file_name吗?或者这是否应该被Paperclip提供的收益所忽视。
提前感谢任何输入。
答案 0 :(得分:3)
我对此的看法:实际文档(PDF文件)与文档记录(包含物理文档和元数据)不同。因此,将Paperclip附件视为模型的属性并在属性之后调用其方法,而不是对模型记录本身进行操作是有意义的。
我的一个应用程序的Document
模型也带有附件,我只是调用属性attachment
。
如果这对您造成太大的不便,您可以随时在模型中实现自己的getter:
class Document < ActiveRecord::Base
has_attached_file :attachment # ... or whatever you are calling it
def file_name
self.attachment.file_name
end
def file_size
self.attachment.file_size
end
def file_type
self.attachment.file_type
end
end
答案 1 :(得分:1)
Paperclip gem在关联对象上需要三个属性。
attribute_file_name
attribute_file_size
attribute_file_type
attribute
当然,如果您的文件名称是has_attached_file :attribute
,通常称为图片,图片等等。
如果您想更改其中一个名称,您需要编辑gem本身,这对于更改属性名称似乎很疯狂:)
答案 2 :(得分:0)
以下是我必须创建的方法:
{attribute}_file_name
{attribute}_file_size
{attribute}_content_type
{attribute}_updated_at