簡體   English   中英

"Rails pluck 獲取carrierwave url"

[英]Rails pluck get carrierwave url

我有一個Book<\/code>模式,並且 book 有一個cover<\/code> (由carrierwave<\/code>使用)。 然后我得到了另一個模態,它包含名為Good<\/code>的書籍

因此,在控制器中,我需要先加載所有book.coverl<\/code>以防止N+1<\/code>查詢。

這是代碼

#@course_goods contain a lots of column, include BookContent.id, too
all_book = BookContent.where(id: @course_goods[:contents_goods].map{|i| i["book_content_id"]}).pluck_all(:id,:cover).map{|b| [b["id"], b["cover"]]}.to_h

如果會出現什么?

all_book = BookContent.where(id: @course_goods[:contents_goods].map{|i,k| [i["book_content_id"], k]})

對於那些使用fog-aws的人,我是這樣做的:

s3 = Fog::Storage.new(
  provider: 'AWS', region: ENV['S3_REGION'],
  aws_access_key_id: ENV['AWS_ACCESS_KEY_ID'], aws_secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
)
directory = s3.directories.new(key: ENV['S3_BUCKET'])
path = directory.files.new(
  key: "your/key.jpg"
).url(Time.now + 1000)

暫無
暫無

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

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