aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/active_storage/variants_controller.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2017-07-23 11:05:20 -0500
committerDavid Heinemeier Hansson <david@loudthinking.com>2017-07-23 11:05:20 -0500
commit46da4ee7daf1ecaa2fc47a260ccb58e119a1b5ea (patch)
treebc19d2f900055e39de21f62ec27e9079723cfa5f /app/controllers/active_storage/variants_controller.rb
parent8f20624820ed0922b33fceb4013d3ff11015b366 (diff)
downloadrails-46da4ee7daf1ecaa2fc47a260ccb58e119a1b5ea.tar.gz
rails-46da4ee7daf1ecaa2fc47a260ccb58e119a1b5ea.tar.bz2
rails-46da4ee7daf1ecaa2fc47a260ccb58e119a1b5ea.zip
Switch to simpler signed_id for blob rather than full GlobalID
We don't need to lookup multiple different classes, so no need to use a globalid.
Diffstat (limited to 'app/controllers/active_storage/variants_controller.rb')
-rw-r--r--app/controllers/active_storage/variants_controller.rb17
1 files changed, 8 insertions, 9 deletions
diff --git a/app/controllers/active_storage/variants_controller.rb b/app/controllers/active_storage/variants_controller.rb
index d5e97e63fa..a65d7d7571 100644
--- a/app/controllers/active_storage/variants_controller.rb
+++ b/app/controllers/active_storage/variants_controller.rb
@@ -1,22 +1,21 @@
+require "active_storage/variant"
+
class ActiveStorage::VariantsController < ActionController::Base
def show
- if blob_key = decode_verified_blob_key
- redirect_to processed_variant_for(blob_key).url(disposition: disposition_param)
+ if blob = find_signed_blob
+ redirect_to ActiveStorage::Variant.new(blob, decoded_variation).processed.url(disposition: disposition_param)
else
head :not_found
end
end
private
- def decode_verified_blob_key
- ActiveStorage::VerifiedKeyWithExpiration.decode(params[:encoded_blob_key])
+ def find_signed_blob
+ ActiveStorage::Blob.find_signed(params[:signed_blob_id])
end
- def processed_variant_for(blob_key)
- ActiveStorage::Variant.new(
- ActiveStorage::Blob.find_by!(key: blob_key),
- ActiveStorage::Variation.decode(params[:variation_key])
- ).processed
+ def decoded_variation
+ ActiveStorage::Variation.decode(params[:variation_key])
end
def disposition_param