Ich habe kürzlich meine Rails-App mit Amazon S3 verbunden, damit meine Benutzer Dateien hochladen können, während ich auf Heroku hosste. Ich folgte das Tutorial bei Firehose Projekt:Testen von Carrierwave mit Rails
http://blog.thefirehoseproject.com/posts/switching-carrierwave-to-use-s3-with-heroku-and-localhost/
Beim ersten Versuch bekam ich eine nicht definierte Methode Fehler für die folgende Zeile ein:
config.fog_provider = 'fog/aws'
(ich zu einem alten zurückkehren kann begehen, wenn Sie denken, der genaue Text dieses alten Fehlers wäre hilfreich.)
Um diesen Fehler herumzustochern, war die einzige Lösung, die funktionierte, meine Version von carrierwave auf "1.0.0.beta" zu setzen. Ich bin mir sicher, dass die Verwendung dieser Version nicht ideal ist, aber es ist die einzige, die bisher funktioniert. Entwicklung und Produktion sind jetzt funktionsfähig, aber nicht getestet. Jeder Test, der eine hochgeladene Datei enthält, löst jetzt einen zusätzlichen Argumentfehler aus.
ActionView::Template::Error: wrong number of arguments (given 2, expected 0)
Dieses Problem tritt bei den meisten Carrierwave-Versionen nicht auf. Aber ich habe noch keine Kombination von Edelsteinen gefunden, die für alle drei meiner Umgebungen funktionieren.
Vielen Dank im Voraus für jede Einsicht.
# config/Initialisierungen/carrierwave.rb
CarrierWave.configure do |config|
config.fog_provider = 'fog/aws' # required
config.fog_credentials = {
provider: 'AWS', # required
aws_access_key_id: ENV["AWS_ACCESS_KEY"], # required
aws_secret_access_key: ENV["AWS_SECRET_KEY"], # required
}
config.fog_directory = ENV["AWS_BUCKET"] # required
end
Beispiel einer Fehlerwerfenden Codelinie
<%= link_to image_tag(question.picture.image_url(:thumb).to_s), edit_question_path(question), :id => "schmedit_#{question.id}" %>
Gemfile
source 'https://rubygems.org'
gem 'rails', '5.0.0'
gem 'bcrypt', '3.1.11'
gem 'faker', '1.6.3'
gem 'will_paginate', '3.1.0'
gem 'bootstrap-will_paginate', '0.0.10'
gem 'bootstrap-sass', '3.3.6'
gem 'puma', '3.4.0'
gem 'sass-rails', '5.0.5'
gem 'uglifier', '3.0.0'
gem 'coffee-rails', '4.2.1'
gem 'jquery-rails', '4.1.1'
gem 'jquery-ui-rails'
gem 'turbolinks', '5.0.0'
gem 'jquery-turbolinks'
gem 'jbuilder', '2.4.1'
gem 'best_in_place', '~> 3.1'
gem 'responders', '~> 2.2'
gem 'carrierwave', '~> 1.0.0.beta'
gem 'mini_magick', '~> 4.3'
gem 'capybara'
gem 'figaro'
gem 'fog-aws', '0.12.0'
group :development, :test do
gem 'sqlite3', '1.3.11'
gem 'byebug', '9.0.0', platform: :mri
end
group :development do
gem 'web-console', '3.1.1'
gem 'listen', '3.0.8'
gem 'spring', '1.7.1'
gem 'spring-watcher-listen', '2.0.0'
end
group :test do
gem 'rails-controller-testing', '0.1.1'
gem 'minitest-reporters', '1.1.9'
gem 'guard', '2.13.0'
gem 'guard-minitest', '2.4.4'
end
group :production do
gem 'pg', '0.18.4'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]