簡體   English   中英

模型中的Rails用戶條件語句

[英]Rails user-conditional statement in model

我正在使用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]]是我要替換的東西,但是我不知道如何根據模型中的用戶操作為該項目正確設置一個條件。 對於這種類型的語句,可能這是有條件的錯誤時間。 有什么建議么?

詹姆斯,我以前做過。 我正在研究舊代碼,試圖找到可以在此處顯示的示例,但似乎找不到。 老客戶,代碼可能不見了,等等。

不過,您走在正確的軌道上。 請記住,“ 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。 所以您非常靠近需要去的地方...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM