Railsアプリでペーパークリップを使用してAmazonS3ストレージをセットアップしようとしています。
「User」に属する「Asset」というモデルがあります
Asset.rbの最初の数行は次のとおりです
attr_accessible :user_id, :uploaded_file
belongs_to :user
#set up "uploaded_file" filed as attached_file(using paperclip)
has_attached_file :uploaded_file,
:path => "assets/:id/:basename.:extension",
:storage => :s3,
:s3_credentials => "#{Rails.root}/config/amazon_s3.yml",
:bucket => "XXXXX"
validates_attachment_size :uploaded_file, :less_than => 1000.megabytes
validates_attachment_presence :uploaded_file
ビューをロードするとエラーが発生します:
NoMethodError in AssetsController#create
undefined method `symbolize_keys' for #<String:0x00000103939258>
これは何を意味するのでしょうか。これは、 "Asset.rb":s3_credentials => "#{Rails.root}/config/amazon_s3.yml"のこの行と関係があります。
Webで調べたところ、Rails_ROOTが非推奨になる方法についていくつかの議論があったため、代わりにRails.rootを使用しました。それでもこのエラーが発生します。
また、AWSキーとシークレットパスワードをamazon_s3.yml設定ファイルに保存しています。
これはベストプラクティスではないので、他に何かアイデアがあれば、ぜひ聞いてみてください。herokuは、Webサイトで変数を環境変数として配置すると言っていますが、herokuでどのように設定するのか、また、ローカル開発マシンでImを使用する場合はどうでしょうか。それはどのように機能しますか?
少し混乱しているので、どこかに完全な例やチュートリアルがあるかどうかを確認します。私が見つけたのは非推奨の設定だけでした.....
ありがとう