method
find_or_build_blob
rails latest stable - Class:
ActiveStorage::Attached::Changes::CreateOne
find_or_build_blob()private
No documentation available.
# File activestorage/lib/active_storage/attached/changes/create_one.rb, line 68
def find_or_build_blob
case attachable
when ActiveStorage::Blob
attachable
when ActionDispatch::Http::UploadedFile
ActiveStorage::Blob.build_after_unfurling(
io: attachable.open,
filename: attachable.original_filename,
content_type: attachable.content_type,
record: record,
service_name: attachment_service_name
)
when Rack::Test::UploadedFile
ActiveStorage::Blob.build_after_unfurling(
io: attachable.respond_to?(:open) ? attachable.open : attachable,
filename: attachable.original_filename,
content_type: attachable.content_type,
record: record,
service_name: attachment_service_name
)
when Hash
ActiveStorage::Blob.build_after_unfurling(
**attachable.reverse_merge(
record: record,
service_name: attachment_service_name
).symbolize_keys
)
when String
ActiveStorage::Blob.find_signed!(attachable, record: record)
when File
ActiveStorage::Blob.build_after_unfurling(
io: attachable,
filename: File.basename(attachable),
record: record,
service_name: attachment_service_name
)
when Pathname
ActiveStorage::Blob.build_after_unfurling(
io: attachable.open,
filename: File.basename(attachable),
record: record,
service_name: attachment_service_name
)
else
raise(
ArgumentError,
"Could not find or build blob: expected attachable, " "got #{attachable.inspect}"
)
end
end