2012-04-03 10 views
0

私はmarcelのaws-s3 gemを使用しています。私は私のプロジェクトでそれを必要としようとしている:ruby​​ aws-s3を要求できません

gem 'aws-s3', :require => 'aws/s3'

しかし、それは必要とされません。

irb(main):003:0> require 'aws/s3' 
=> false 
私は AWS::S3::名前空間を取り除くことができますどのように

+0

Bundlerを使用している場合、Gemfileの ':require'部分にはすでにgemが必要です。手動で再度要求すると、 'false'が返されます。 stdlibから何かを試してみてください。 IRBを起動し、 'set 'を2回続けて実行する必要があります。 –

+0

ありがとうございます。しかし、私のコードでは 'AWS :: S3 ::'という接頭辞を付けずにクラスを認識しません。 – m33lky

+0

これは、クラスが 'AWS'モジュール内の' S3'モジュールの内部で定義されているためです。あなたが気づくように、ドキュメントは 'AWS :: S3 :: Base.establish_connection! 'も使用しています....あなたが別の言語から来て、Rubyにあまり慣れていない場合、名前空間を考える。 –

答えて

0

Bundlerを使用している場合は、Gemfileの:require部分にgemが必要です。手動で再度要求すると、falseが返されます。 stdlibから何かを試してみてください。 IRBを開始し、 'set'を2回続けて実行する必要があります。

AWS::S3::部分については、 Bundlerまたはrequireがすべての名前空間を取り除き、RailsアプリケーションでAWS宝石を使用するとしたら、AWS::S3::BaseActiveRecord::Baseの区別はどうですか?実際にまだ名前空間を取り除きたい場合はinclude AWSinclude S3です。

関連する問題