【问题标题】:Rails DirectUploadsController: override #create method to add custom headers valuesRails DirectUploadsController:覆盖#create 方法以添加自定义标头值
【发布时间】:2020-01-30 15:22:58
【问题描述】:

我想知道是否可以覆盖 DirectUploadsController#create 方法 calls 私有 direct_upload_json 方法:

class ActiveStorage::DirectUploadsController < ActiveStorage::BaseController
  def create
    blob = ActiveStorage::Blob.create_before_direct_upload!(blob_args)
    render json: direct_upload_json(blob)
  end

private
...
def direct_upload_json(blob)
  blob.as_json(root: false, methods: :signed_id).merge(direct_upload: {
    url: blob.service_url_for_direct_upload,
    headers: blob.service_headers_for_direct_upload
  })
end

我需要它为请求标头设置一个Authorization Bearer &lt;token&gt; 以及另一个键/值。 任何的想法?谢谢。

【问题讨论】:

    标签: ruby-on-rails-5 rails-activestorage


    【解决方案1】:
    #config/routes.rb
    
    Rails.application.routes.draw do
      # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
      post '/rails/active_storage/direct_uploads', to: 'image_uploads#create'
    end
    

    覆盖您的DirectUploadsController

    #app/controllerss/image_uploads_controler.rb  
    class ImageUploadsController < ActiveStorage::DirectUploadsController
    
      def create
        super
      end
    
      private
    
      def direct_upload_json(blob)
        headers = blob.service_headers_for_direct_upload
        headers[:custom_header] = "TEST HEADER"
        blob.as_json(root: false, methods: :signed_id).merge(direct_upload: {
          url: blob.service_url_for_direct_upload,
          headers: headers
        })
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-17
      • 2017-08-19
      • 2021-12-19
      • 2020-08-24
      • 1970-01-01
      相关资源
      最近更新 更多