默认情况下,附件 Fu将上传的文件存储在"public/#{table_name}"
. 我想将其修改为类似"public/#{table_name}/#{site_id}"
,site_id
模型的属性在哪里。请注意,我尝试过使用self.site_id
但都失败了。
has_attachment :storage => :file_system,
:max_size => 25.megabytes,
:path_prefix => "public/#{table_name}/#{site_id}",
:thumbnails => {
:large => '256x256>',
:medium => '128x128>',
:small => '64x64>'
}
我收到“未定义的局部变量或方法 site_id”错误消息。从工作中删除#{site_id}
组件:path_prefix
并运行该initialize
方法。我可以site_id
按预期访问。
我有一个initialize
看起来像这样的方法:
def initialize(site_id = nil)
super(nil)
self.site_id ||= site_id
end
我通过 Rails 控制台实例化对象,如下所示:
r = Resource.new(100)
该has_attachment
方法是否在我的initialize
方法之前运行?:path_prefix
实例化模型时如何将参数动态传递给?