class Engine2::DownloadForeignBlobStoreAction

Public Instance Methods

invoke(handler) click to toggle source
# File lib/engine2/action/infra.rb, line 189
def invoke handler
    model = node.parent.*.model
    inf = model.type_info[node.parent.*.field]
    assoc = model.association_reflections[inf[:assoc_name]]
    blob_model = assoc.associated_class
    handler.permit id = handler.params[:id]
    rec = model.naked.select(assoc[:key]).where(model.primary_keys_hash(split_keys(id))).first
    handler.permit rec

    entry = blob_model.naked.select(inf[:bytes_field], inf[:name_field], inf[:mime_field]).where(blob_model.primary_key => rec[assoc[:key]]).first
    serve_blob(handler, entry, inf)
end