简体   繁体   中英

Ruby on Rails 5: NoMethodError: undefined method `+' for nil:NilClass when rake db:migrate

Now I am going to install and run a small Rails 5 application on my localhost. I did "bundle install" and "rake db:create" successfully. Then, when I executed "rake db:migrate", it occurs an error like the following lines. I have no idea why that is.

DEPRECATION WARNING: The factory_girl gem is deprecated. Please upgrade to factory_bot. See https://github.com/thoughtbot/factory_bot/blob/v4.9.0/UPGRADE_FROM_FACTORY_GIRL.md for further instructions. (called from <top (required)> at /mnt/c/workspace/c3church.ca/config/application.rb:7)
rake aborted!
NoMethodError: undefined method `+' for nil:NilClass
/mnt/c/workspace/c3church.ca/config/initializers/paperclip.rb:3:in `<top (required)>'
/home/prince/.rvm/gems/ruby-2.3.3/gems/activesupport-5.0.7/lib/active_support/dependencies.rb:287:in `load'
/home/prince/.rvm/gems/ruby-2.3.3/gems/activesupport-5.0.7/lib/active_support/dependencies.rb:287:in `block in load'
/home/prince/.rvm/gems/ruby-2.3.3/gems/activesupport-5.0.7/lib/active_support/dependencies.rb:259:in `load_dependency'
/home/prince/.rvm/gems/ruby-2.3.3/gems/activesupport-5.0.7/lib/active_support/dependencies.rb:287:in `load'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/engine.rb:648:in `block in load_config_initializer'
/home/prince/.rvm/gems/ruby-2.3.3/gems/activesupport-5.0.7/lib/active_support/notifications.rb:166:in `instrument'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/engine.rb:647:in `load_config_initializer'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/engine.rb:612:in `block (2 levels) in <class:Engine>'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/engine.rb:611:in `each'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/engine.rb:611:in `block in <class:Engine>'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/initializable.rb:30:in `instance_exec'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/initializable.rb:30:in `run'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/initializable.rb:55:in `block in run_initializers'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/initializable.rb:44:in `each'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/initializable.rb:44:in `tsort_each_child'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/initializable.rb:54:in `run_initializers'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/application.rb:352:in `initialize!'
/mnt/c/workspace/c3church.ca/config/environment.rb:5:in `<top (required)>'
/home/prince/.rvm/gems/ruby-2.3.3/gems/activesupport-5.0.7/lib/active_support/dependencies.rb:293:in `require'
/home/prince/.rvm/gems/ruby-2.3.3/gems/activesupport-5.0.7/lib/active_support/dependencies.rb:293:in `block in require'
/home/prince/.rvm/gems/ruby-2.3.3/gems/activesupport-5.0.7/lib/active_support/dependencies.rb:259:in `load_dependency'
/home/prince/.rvm/gems/ruby-2.3.3/gems/activesupport-5.0.7/lib/active_support/dependencies.rb:293:in `require'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/application.rb:328:in `require_environment!'
/home/prince/.rvm/gems/ruby-2.3.3/gems/railties-5.0.7/lib/rails/application.rb:448:in `block in run_tasks_blocks'
/home/prince/.rvm/gems/ruby-2.3.3/gems/rake-12.3.1/exe/rake:27:in `<top (required)>'
/home/prince/.rvm/gems/ruby-2.3.3/bin/ruby_executable_hooks:15:in `eval'
/home/prince/.rvm/gems/ruby-2.3.3/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

My Gemfile is:

source 'https://rubygems.org'
gem 'rails',  '~> 5.0.0'
gem 'sprockets-rails', :require => 'sprockets/railtie'
gem 'sass-rails'
gem "uglifier", "~> 3.0.0"
gem 'coffee-rails'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder'
gem 'cancancan'
gem 'devise'
gem 'figaro'
gem 'rolify'
gem 'simple_form'
gem 'paperclip'
gem 'aws-sdk', '~> 2.3.0'
gem 'aws-sdk-resources', '~> 2'
gem 'jquery-ui-rails'
gem 'jquery-timepicker-addon-rails'
gem "geocoder"
gem "font-awesome-rails"
gem "jquery-slick-rails"
gem 'truncate_html'
gem "instagram-continued", require: "instagram"
gem 'fancybox2-rails'
gem 'validates_email_format_of'
gem 'icalendar', '~> 2.3'
gem 'responders', '~> 2.0'
gem 'react-rails'
gem 'shrine'
gem 'jquery-fileupload-rails'

group :development do
  gem 'sqlite3'
  gem 'better_errors'
  gem 'binding_of_caller', :platforms=>[:mri_19, :mri_20, :rbx]
  gem 'rails_layout'
  gem 'rb-fchange', :require=>false
  gem 'rb-fsevent', :require=>false
  gem 'rb-inotify', :require=>false
  gem 'guard-bundler'
  gem 'guard-rails'
  gem 'guard-rspec'
  gem 'guard-livereload', '~> 2.4', require: false
  gem 'web-console', '~> 2.0'
  gem 'byebug'
  gem 'rails_real_favicon'
end

group :development, :test do
  gem 'factory_girl_rails'
  gem 'rspec-rails'
  gem 'thin'
  gem 'rb-readline'
end

group :test do
  gem 'capybara'
  gem 'database_cleaner', '1.0.1'
  gem 'email_spec'
end

group :production do
  gem 'puma'
  gem 'heroku-deflater'
  gem 'pg'
  #gem 'rails_12factor'
  #gem 'newrelic_rpm'
end

#ruby=2.3.3
ruby '2.3.3'

And config/initializers/paperclip.rb file is:

Paperclip::Attachment.default_options[:url] = ':s3_alias_url'
Paperclip::Attachment.default_options[:path] = '/:class/:attachment/:id_partition/:style/:filename'
Paperclip::Attachment.default_options[:s3_host_alias] = ENV['S3_BUCKET_NAME']+'.s3.amazonaws.com'
Paperclip.options[:command_path] = '/usr/bin'

Could you please let me know the reason and how to fix it? Thank you so much.

ENV['S3_BUCKET_NAME'] returns nil . You have to set your environment variable to your s3 bucket name. Optionally you can delete that variable and pass in a string like "My-Bucket-Name" .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM