Мне удалось сохранить объекты с изображениями.Но после интеграции cancancan gem его невозможно сохранить:
Aws :: S3 :: Errors :: AccessDenied в EventsController # new Access Denied
image = event_params[:cover_image]
if image.present?
raise "Unacceptable file format" if !image.content_type.include?("image/")
original_filename = image.original_filename
photo_extname = File.extname(original_filename).downcase
raise "Please upload images with .jpg or .png format." unless [".jpg", ".jpeg", ".png"].include?(photo_extname)
end
event = Event.new(event_params.except(:client))
event.event_wf_balance_payment_enabled = session[:event_preflight]['event_wf_balance_payment_enabled'].present?
event.video_wf_asset_request_enabled = session[:event_preflight]['video_wf_asset_request_enabled'].present?
# error is here,cannot save
event.save
event.vg_enable_video_workflow if session[:event_preflight]['video_wf_state_enabled'].present?
event.vg_enable_photo_workflow if session[:event_preflight]['photo_wf_state_enabled'].present?
if image.present?
safe_name = SafeName.prepare(image.original_filename)
event.cover_image_file_name = image.original_filename
event.cover_image_content_type = image.content_type
event.cover_image_file_size = image.size
event.cover_image_status = Event::COVER_IMAGE_STATUSES[:upload_success]
event.save
photo_extname_lowercase = photo_extname.downcase
credentials = Aws::Credentials.new(Rails.application.secrets.aws['aws_access_key_id'], Rails.application.secrets.aws['aws_secret_access_key'])
aws_s3_resource = Aws::S3::Resource.new(region: Rails.application.secrets.aws['aws_region'], credentials: credentials)
bucket = aws_s3_resource.bucket(Rails.application.secrets.aws['aws_s3_assets_bucket'])
cover_photos_dir = Rails.application.secrets.aws['aws_s3_event_cover_photos_dir']
id_hash = Digest::MD5.hexdigest(event.id.to_s)
unique_filename = "#{id_hash}-#{safe_name}_original#{photo_extname_lowercase}"
key = "#{cover_photos_dir}/#{event.id}/#{unique_filename}"
object = bucket.object(key)
object.put(body: image)
end
Кто-нибудь знает, почему я получаю такую ошибку?Я попытался отладить, но все, что я могу получить, это то, что невозможно сохранить объект события, но когда я отправляю данные без изображения, все в порядке.