我正在使用attachment_fu和Amazon S3存储工作Rails应用程序。是否可以在创建对象时根据用户输入使:s3_访问(has_attachment选项的一部分)成为条件。我希望用户能够选择附件是否经过身份验证 - 读取或公开读取。这是可能的,您将如何设置条件语句?
我的模型看起来像这样:
has_attachment :content_type => :image,
:storage => :s3,
:size => 0.kilobytes..6144.kilobytes,
:processor => 'Rmagick',
:resize_to => '650x500>',
:thumbnails => { :thumb => '75x75!' },
:s3_access => ( [[conditional]] ? 'authenticated-read' : 'public-read' )
显然[[conditional]]是我想要替换的,但我不知道如何根据模型中的用户操作正确设置条件。也许这是这种类型语句的条件错误时间。有什么建议吗?
答案 0 :(得分:0)
但你走在正确的轨道上。请记住,'has_attachment'只是一个带参数哈希的方法调用,所以如果你这样对待它,你可以调整最终发送给方法的哈希值。
编辑 - 这是一个代码示例 -
production = ENV['RAILS_ENV'] == 'production'
has_attachment :content_type => :image,
:max_size => 1.megabyte,
:resize_to => '800x600>',
:thumbnails => { :thumb => '146x146>', :small => '75x75' },
# skip s3 for local development and testing
:storage => (production ? :s3 : :file_system),
:path_prefix => (production ? 'comment_images' : 'public/comment_images')
在上面的例子中,我想在开发时在本地存储上传,但在生产时切换到S3。所以你非常接近你需要的地方......