Most of the times when you run your rails commands in your console you end up getting recursive and un-ended errors and finally aborts as a STACK LEVEL TOO DEEP error isn't it?
Don't fret, this happens when the RAKE goes conky in 0.9.2 version. Most of the times you will see the below types of errors
WARNING: DSL method Object#ruby called at /usr/local/lib/ruby/gems/rake-0.9.2/lib/rake/file_utils_ext.rb:36 in 'ruby'
or
RAKE:DSL error
or
uninitialized constant Rake::DSL
or
undefined method `task' for #<MyApp::Application:0x9223b6c>
or
any other error which makes your RAKE to abort or throws any DSL errors.
For all these see the following solutions which you might want to consider to fix them and get them working
Solution 1:
Open your Rake file and modify
require 'rake'
to
require 'rake/dsl_definition'
require 'rake'
Solution 2:
In the same Rake file modify the following
YourAPP::Application.load_tasks
to
module ::YourAPP
class Application
include Rake::DSL
end
end
module ::RakeFileUtils
extend Rake::FileUtilsExt
end
YourAPP::Application.load_tasks
Solution 3:
If you are running any console tasks with rake or rails, then run it with the bundler
e.g.
rake db:migrate should be bundle exec rake db:migrate
rake specs should be bundle exec rake specs
and so on....
These 3 solutions will solve your rake and dsl problems.
Cheers....
Satish N Kota