我在尝试将我的回形针附件的文件名更改为等于我将回形针文件附加到的类的属性时收到错误。
当我使用“#{self.company_name}”时,它会出错。显然在这个范围内,“自我”不是公司。当我写这一行时,我认为self是我正在上传此附件的公司实例。知道如何解决这个问题吗? Paperclip文档说使用“:filename”但我想使用Company.company_name的值。
class Company < ActiveRecord::Base
include AliasAttrs
has_attached_file :company_logo, {
:storage => :ftp,
:path => "/logos/#{self.company_name}",
:url => FTP_CONFIG[:access_host]+"logos/:filename",
:ftp_servers => [
{
:host => FTP_CONFIG[:host],
:user => FTP_CONFIG[:user],
:password => FTP_CONFIG[:pass],
:port => 21 # optional, 21 by default
}
]
}
end
更新
我尝试使用此帖中的建议:https://robots.thoughtbot.com/paperclip-tips-and-updates
但是现在我在启动服务器时遇到以下错误:
undefined method `interpolations' for Paperclip::Attachment:Class (NoMethodError)
答案 0 :(得分:2)
看起来插值的语法已经改变了。更新了它,它工作。将以下内容添加到模型中或在config / initializers
中创建paperclip.rb文件 Paperclip.interpolates :company_name do |attachment, style|
attachment.instance.company_name
end