【问题标题】:Rails user-conditional statement in model模型中的 Rails 用户条件语句
【发布时间】:2010-11-04 13:26:50
【问题描述】:

我正在开发一个使用 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]] 是我要替换的内容,但我不知道如何根据模型中的用户操作正确设置项目的条件。也许这是这种类型语句的条件错误时间。有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails amazon-s3 attachment-fu


    【解决方案1】:

    詹姆斯,我以前做过。我正在挖掘我的旧代码,试图找到一个可以在这里展示的示例,但我似乎找不到它。老客户端,代码可能没了,等等……

    不过,您走在正确的轨道上。请记住,“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。所以你离你需要去的地方很近......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多