0

私はRoRを初めて使いました。私はRails 5とaws-sdk gemを使用しています。バケットにアクセスするaws-sdk Rails 5

これは私が構築しようとしている2番目のwebappです。私のコードで大きなナンセンスを見つけたら、私と一緒に裸にしてください...私は2011年に作られたチュートリアルに従っているので、/s3。

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

@songs = Aws::S3::Bucket.find(Musicapp::Application::S3_BUCKET).objects 
私はバケツにアクセスしようとしていると私はエラーに実行し続ける

:私はここで私の質問です、AWS-SDKを使用しての明確な方向性を見つけるのに苦労します

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

012それはMusicappかのように見えますの
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

::アプリケーション::次のことができるようにするべきであるのでS3_BUCKETは、バケットのオブジェクトそのものでありますそれに#objectsを送ります。答えを

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

おかげでデビッド、それはまた別のエラーを上げています:nilのための 未定義のメソッド 'オブジェクトを:NilClassはもしかして? object_id – catch22

関連する問題