0

Я новичок в RoR. Я использую Rails 5 и aws-sdk gem.доступ к ковшу aws-sdk Rails 5

Это второй webapp, который я пытаюсь построить, так голый со мной, если вы найдете большую бессмыслицу в моем коде ... Я следую учебнику, сделанному еще в 2011 году, поэтому он указывает направления, используя gem aws/s3. Я изо всех сил, чтобы найти четкие указания по использованию AWS-SDK, так вот мой вопрос:

Я пытаюсь получить доступ к Ковш, и я продолжаю нарваться ошибки:

undefined method `find' for Aws::S3::Bucket:Class 

Относительно:

@songs = Aws::S3::Bucket.find(Musicapp::Application::S3_BUCKET).objects 

CONFIG> APPLICATION.RB

require 'aws-sdk' 

module Musicapp 
    class Application < Rails::Application 
    Aws.config.update({ 
     region: 'eu-central-1', 
     credentials: Aws::Credentials.new('abc', 'xyz') 
    }) 
    s3 = Aws::S3::Resource.new(region: 'eu-central-1') 
    S3_BUCKET = s3.bucket(ENV['S3_BUCKET']) 
    end 
end 

CONFIG> APPLICATION.YML

development: 
    AWS_ACCESS_KEY_ID: 'abc' 
    AWS_SECRET_ACCESS_KEY: 'xyz' 
    S3_BUCKET: 'mp3playlist' 

КОНТРОЛЛЕРЫ> SONGS_CONTROLLER.RB

class SongsController < ApplicationController 
    def index 
    @songs = Aws::S3::Bucket.find(Musicapp::Application::S3_BUCKET).objects 
    end 

Gemfile

gem 'aws-sdk' 

ответ

0

Это выглядит так, как будто Musicapp :: Application :: S3_BUCKET сам по себе является объектом ведро, так что вы должны быть в состоянии отправьте туда #объекты.

@songs = Musicapp::Application::S3_BUCKET.objects 
+0

благодарит Дэвид за ответ, но это повышение другой ошибки: неопределенных метод 'объектов для ноля: NilClass вы имели в виду? object_id – catch22

Смежные вопросы