前提・実現したいこと
AWSのS3のバケットに画像投稿を紐づけようとしております。
ターミナルでrails sとした所、エラーがでて解決できません。
carrierwave.rb:16:in `block in <top (required)>': undefined method `[]' for nil:NilClass (NoMethodError)
require 'carrierwave/storage/abstract' require 'carrierwave/storage/file' require 'carrierwave/storage/fog' # 画像名に日本語が使えるようにする CarrierWave::SanitizedFile.sanitize_regexp = /[^[:word:].\-+]/ CarrierWave.configure do |config| # if Rails.env.development? || Rails.env.test? #開発とテストは今まで通りに # config.storage = :file # elsif Rails.env.production? config.storage = :fog config.fog_provider = 'fog/aws' config.fog_credentials = { provider: 'AWS', aws_access_key_id: Rails.application.credentials.aws[:access_key_id], aws_secret_access_key: Rails.application.credentials.aws[:secret_access_key], region: 'ap-northeast-1' } config.fog_directory = 'freemarket61bpooh' config.asset_host = 'https://s3-ap-northeast-1.amazonaws.com/freemarket61bpooh' config.fog_directory = 'freemarketsample61b' config.asset_host = 'https://s3-ap-northeast-1.amazonaws.com/freemarketsample61b' config.fog_attributes = { cache_control: "public, max-age=#{365.days.to_i}" } end
###使用言語 ruby on rails
試したこと
参考記事
https://teratail.com/questions/224646 https://qiita.com/gonzaemon111/items/a6d9f3ad0645037125c2
###上記記事を見まして、
undefined method `[]' for nil:NilClass (NoMethodError) はnilclassのnilオブジェクトに対してメソッドが定義されていないことは理解しましたが、 そもそもエラーの16行目は aws_access_key_id: Rails.application.credentials.aws[:access_key_id], のためどのようにすれば解決されるのかわからない状況です。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/07 10:41