no such file to load -- "tasks/rails" + rails2 to rails3 - ruby-on-rails

I have upgraded rails 2.3.11 to rails 3.0.8 using rails_upgrade plugin. Now I am getting this error and I do not understand why. Any help you can provide is appreciated!
rake aborted!
no such file to load -- tasks/rails
/home/mpn/mpn_admin/branches/to_rails3/Rakefile:13:in `require'
/home/mpn/mpn_admin/branches/to_rails3/Rakefile:13:in `<top (required)>'
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/rake_module.rb:25:in `load'
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/rake_module.rb:25:in `load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:495:in `raw_load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:78:in `block in load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:77:in `load_rakefile'
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:61:in `block in run'
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/lib/rake/application.rb:59:in `run'
/usr/local/rvm/gems/ruby-1.9.2-p180/gems/rake-0.9.2/bin/rake:32:in `<top (required)>'
/usr/local/rvm/gems/ruby-1.9.2-p180/bin/rake:19:in `load'
/usr/local/rvm/gems/ruby-1.9.2-p180/bin/rake:19:in `<main>'

Check your RakeFile to make sure it doesn't have the old Rails 2 artifacts left in it. The error is getting thrown in the RakeFile so that's probably the cause and the upgrade plugin would not have caught that.
Here is what a sample Rails 3 RakeFile looks like:
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require File.expand_path('../config/application', __FILE__)
require 'rake'
MyAppNameGoesHere::Application.load_tasks

Related

LoadError while running rails active_storage:install

I am new to ruby on rails and am trying to build a basic todo-list app. My ruby version is 2.5.5 and Rails version is 5.1.7. I am trying to setup active_storage in my application but am unable to run the command rails active_storage:install. I am on a Windows 8.1 x64 system.
This is the error trace:
C:\Users\Sreekar\Documents\GitHub\todo-app>rails active_storage:install --trace
rails aborted!
LoadError: cannot load such file -- active_storage/engine
C:/Users/Sreekar/Documents/GitHub/todo-app/config/application.rb:4:in `require'
C:/Users/Sreekar/Documents/GitHub/todo-app/config/application.rb:4:in `<top (required)>'
C:/Users/Sreekar/Documents/GitHub/todo-app/Rakefile:4:in `require_relative'
C:/Users/Sreekar/Documents/GitHub/todo-app/Rakefile:4:in `<top (required)>'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/rake-12.3.3/lib/rake/rake_module.rb:29:in `load'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/rake-12.3.3/lib/rake/rake_module.rb:29:in `load_rakefile'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/rake-12.3.3/lib/rake/application.rb:703:in `raw_load_rakefile'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/rake-12.3.3/lib/rake/application.rb:104:in `block in load_rakefile'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/rake-12.3.3/lib/rake/application.rb:186:in `standard_exception_handling'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/rake-12.3.3/lib/rake/application.rb:103:in `load_rakefile'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.7/lib/rails/commands/rake/rake_command.rb:20:in `block in perform'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/rake-12.3.3/lib/rake/application.rb:186:in `standard_exception_handling'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.7/lib/rails/commands/rake/rake_command.rb:18:in `perform'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.7/lib/rails/command.rb:46:in `invoke'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/railties-5.1.7/lib/rails/commands.rb:16:in `<top (required)>'
bin/rails:4:in `require'
bin/rails:4:in `<main>'
I have already tried to include require active_storage/engine in my config/application.rb file but it isn't working.
These are the contents of my application.rb file:
require_relative 'boot'
require 'rails/all'
require 'active_storage/engine'
Bundler.require(*Rails.groups)
module TodoApp
class Application < Rails::Application
config.load_defaults 5.1
I need to create 2 tables in my schema: active_storage_blobs and active_storage_attachments upon running rails db:migrate.
Would appreciate any help regarding how to get this to work. Thanks!
Active storage is supported and comes in default from Rails versions >= 5.2. Your Rails version is 5.1.7.
So, you should consider upgrading your app to Rails 5.2(See this link) to use Active storage.

upgrading to ruby 2.3.0 NameError: uninitialized constant I18n::Config::Backend

I just upgraded Ruby 2.2.2 to 2.3.0. Whenever I run a rake task I get the following error:
Christians-Air:my_rails_app cman77$ rake --trace
rake aborted!
NameError: uninitialized constant I18n::Config::Backend
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/i18n-0.7.0/lib/i18n/config.rb:19:in `backend'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/i18n-0.7.0/lib/i18n.rb:147:in `translate'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/actionview-4.2.6/lib/action_view/helpers/translation_helper.rb:69:in `translate'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/i18n-0.7.0/lib/i18n/config.rb:19:in `backend'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/i18n-0.7.0/lib/i18n.rb:147:in `translate'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/actionview-4.2.6/lib/action_view/helpers/translation_helper.rb:69:in `translate'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/railties-4.2.6/lib/rails/engine.rb:658:in `block in run_tasks_blocks'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/railties-4.2.6/lib/rails/engine.rb:658:in `each'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/railties-4.2.6/lib/rails/engine.rb:658:in `run_tasks_blocks'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/railties-4.2.6/lib/rails/application.rb:452:in `run_tasks_blocks'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/railties-4.2.6/lib/rails/engine.rb:453:in `load_tasks'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/railties-4.2.6/lib/rails/railtie.rb:194:in `public_send'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/railties-4.2.6/lib/rails/railtie.rb:194:in `method_missing'
/Users/cman77/Dropbox/rails_projects/my_rails_app/Rakefile:9:in `<top (required)>'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/rake-11.1.2/lib/rake/rake_module.rb:28:in `load'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/rake-11.1.2/lib/rake/rake_module.rb:28:in `load_rakefile'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/rake-11.1.2/lib/rake/application.rb:689:in `raw_load_rakefile'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/rake-11.1.2/lib/rake/application.rb:94:in `block in load_rakefile'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/rake-11.1.2/lib/rake/application.rb:176:in `standard_exception_handling'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/rake-11.1.2/lib/rake/application.rb:93:in `load_rakefile'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/rake-11.1.2/lib/rake/application.rb:77:in `block in run'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/rake-11.1.2/lib/rake/application.rb:176:in `standard_exception_handling'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/rake-11.1.2/lib/rake/application.rb:75:in `run'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/gems/rake-11.1.2/bin/rake:33:in `<top (required)>'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/bin/rake:23:in `load'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/bin/rake:23:in `<main>'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/bin/ruby_executable_hooks:15:in `eval'
/Users/cman77/.rvm/gems/ruby-2.3.0#jbio.3.0/bin/ruby_executable_hooks:15:in `<main>'
Anyone have experience with this? I am really stuck in terms of how to even begin to diagnose/remedy this issue.
Here is the contents of my Rakefile:
#!/usr/bin/env rake
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require File.expand_path('../config/application', __FILE__)
ENV['NEWRELIC_ENABLE'] = 'false'
MyRailsApp::Application.load_tasks
This appears to be the offending line referenced in the I18n gem:
https://github.com/svenfuchs/i18n/blob/master/lib/i18n/config.rb#L18
Update: it seems to be tied to the use of include ActionView::Helpers::TranslationHelper in one of my rake files. If I remove that line I can run rake commands.
Update2: Removing include ActionView::Helpers::TranslationHelper and replacing (t "some_text") with (I18n.t "some_text") completely resolved the issue. I will still award the bounty to anyone who can explain why this broke with a Ruby upgrade!
My guess is that you experienced that problem because you ere using the t method (an helper for controllers and views) in a rake task, instead of the standard I18n.t.
This is an uncommon and unconventional approach, so you have fallen in a possible regression that few have experienced and it has a simple solution, like the one you found: stick to the conventions.

Cannot load mysql2 gem

I've already seen some different answers, but none of these helped me...
This is the trick: I have to fix this without touching the Gemfile. I'm currently creating my working environment so that it matches the production server, so, I cannot modify the rails' code at all.
My OS: OSX 10.11
Ruby: ruby 2.0.0p643
Rails: 4.0.0
The gem is the Gemfile as gem 'mysql2'. There are no errors when doing bundle install, but when I try to rake db:migrate --trace this is the output:
rake aborted!
There was an error while trying to load the gem 'mysql2'.
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.11.2/lib/bundler/runtime.rb:80:in `rescue in block (2 levels) in require'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.11.2/lib/bundler/runtime.rb:76:in `block (2 levels) in require'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `each'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.11.2/lib/bundler/runtime.rb:72:in `block in require'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `each'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.11.2/lib/bundler/runtime.rb:61:in `require'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/bundler-1.11.2/lib/bundler.rb:99:in `require'
/Users/redar/redar/config/application.rb:7:in `<top (required)>'
/Users/redar/redar/Rakefile:4:in `require'
/Users/redar/redar/Rakefile:4:in `<top (required)>'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/rake-10.1.0/lib/rake/rake_module.rb:25:in `load'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/rake-10.1.0/lib/rake/rake_module.rb:25:in `load_rakefile'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/rake-10.1.0/lib/rake/application.rb:637:in `raw_load_rakefile'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/rake-10.1.0/lib/rake/application.rb:94:in `block in load_rakefile'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/rake-10.1.0/lib/rake/application.rb:93:in `load_rakefile'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/rake-10.1.0/lib/rake/application.rb:77:in `block in run'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/rake-10.1.0/lib/rake/application.rb:75:in `run'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/gems/rake-10.1.0/bin/rake:33:in `<top (required)>'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/bin/rake:23:in `load'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/bin/rake:23:in `<main>'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/bin/ruby_executable_hooks:15:in `eval'
/Users/redar/.rvm/gems/ruby-2.0.0-p643/bin/ruby_executable_hooks:15:in `<main>'
I don't know how to interpret this. Is there something wrong with the Rakefile?
Also, this is the output from the mkmf.log
EDIT: This is the content of my Rakefile, located at myapp/folder
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require File.expand_path('../config/application', __FILE__)
MyApp::Application.load_tasks
Try
bundle exec rake db:migrate
This will make sure that you are executing "rake db:migrate" with the gems listed in the Gemfile loaded and available. If you run it without "bundle exec" you may be executing only with the system gems available.

Deploying to Heroku

Following this tutorial, I applied the steps for deploying to Heroku under 2.3.5 Deploying the demo app.
When I run the command: > heroku rake db:migrate, I get the following:
$ heroku rake db:migrate
(in /app)
rake aborted!
uninitialized constant Rake::DSL
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:8:in `<class:Ta
skLib>'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:6:in `<module:R
ake>'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:3:in `<top (req
uired)>'
/app/.bundle/gems/ruby/1.9.1/gems/rdoc-3.8/lib/rdoc/task.rb:37:in `require'
/app/.bundle/gems/ruby/1.9.1/gems/rdoc-3.8/lib/rdoc/task.rb:37:in `<top (require
d)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks/documentation.r
ake:2:in `require'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks/documentation.r
ake:2:in `<top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:15:in `load'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:15:in `block
in <top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:6:in `each'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/tasks.rb:6:in `<top (
required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:215:in
`require'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:215:in
`initialize_tasks'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:139:in
`load_tasks'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.9/lib/rails/application.rb:77:in
`method_missing'
/app/Rakefile:7:in `<top (required)>'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2373:in `load'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:1991:in `run'
/usr/ruby1.9.2/bin/rake:31:in `<main>'
Why is that? And, how can I solve this issue?
Thanks.
I have a blog post about it here:
http://codeglot.com/posts/13-you_have_already_activated_rake_0_9_2
You have two options. Keep the latest gem and do this:
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require File.expand_path('../config/application', __FILE__)
require 'rake/dsl_definition'
require 'rake'
Or you need to specify the older version of rake:
gem list
Then see which version of rake you have.
gem uninstall rake -v=0.9.1
Then in your bundler specify the older version:
gem 'rake', '0.8.7'
This link may help: fix unitialized constant rake heroku
Form that post:
Put this in your Rakefile above require 'rake':
require 'rake/dsl_definition'

Not able to start Rails server

I am working on Ubuntu 10.04 LTS, Lucid Lynx, have installed Ruby on Rails 3 on it. I am not able to start Rails server. I am getting the following error.
mah#mah-laptop:~/Desktop/projects/ver$ rails s
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.8/lib/rails/commands.rb:29:in `block in <top (required)>': undefined method `root' for nil:NilClass (NoMethodError)
from /home/mah/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.8/lib/rails/commands.rb:27:in `tap'
from /home/mah/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.8/lib/rails/commands.rb:27:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
I am using Rails 3.0.8 and rake version 0.8.7
I tried bundle exec but got same error.
Thanks for any help in advance
UPDATE
Here is what I get after bundle exec rake db:migrate --trace
mah#mah-laptop:~/Desktop/projects/ver$ bundle exec rake db:migrate --trace
rake aborted!
uninitialized constant Ver
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/aws-s3-0.6.2/lib/aws/s3/extensions.rb:206:in `const_missing_from_s3_library'
/home/mah/Desktop/projects/ver/Rakefile:7:in `<top (required)>'
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.2/lib/rake/rake_module.rb:25:in `load'
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.2/lib/rake/rake_module.rb:25:in `load_rakefile'
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.2/lib/rake/application.rb:495:in `raw_load_rakefile'
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.2/lib/rake/application.rb:78:in `block in load_rakefile'
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.2/lib/rake/application.rb:77:in `load_rakefile'
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.2/lib/rake/application.rb:61:in `block in run'
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.2/lib/rake/application.rb:59:in `run'
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/rake-0.9.2/bin/rake:32:in `<top (required)>'
/home/mah/.rvm/gems/ruby-1.9.2-p0/bin/rake:19:in `load'
/home/mah/.rvm/gems/ruby-1.9.2-p0/bin/rake:19:in `<main>'
This error means that Rails.application isn't initialized. I didn't actually know that, I
cheated.
So that then begs the question: how did you set up this application?
Perhaps this application doesn't contain a config/application.rb file that defines a class that inherits from Rails::Application and therefore is causing this problem. In my application here, I've got this one you could use as an example.

Resources