0
votes

I have been coding in rails3 and have all the dependencies resolved. Now, I have moved back to rails 2 and there are lots of dependency issues. Is there any sane approach to make sure that all the gems and dependencies are resolved automatically based on the current rails version?

I keep getting this error

 `default_options': undefined method `write_inheritable_attribute' for  Rails::Generator::Base:Class (NoMethodError)

Error Log

    from /home/saiesh/.rvm/gems/ruby-1.9.3-p429/gems/rails-2.3.8/lib/rails_generator/base.rb:90:in `<class:Base>'
from /home/saiesh/.rvm/gems/ruby-1.9.3-p429/gems/rails-2.3.8/lib/rails_generator/base.rb:85:in `<module:Generator>'
from /home/saiesh/.rvm/gems/ruby-1.9.3-p429/gems/rails-2.3.8/lib/rails_generator/base.rb:48:in `<module:Rails>'
from /home/saiesh/.rvm/gems/ruby-1.9.3-p429/gems/rails-2.3.8/lib/rails_generator/base.rb:6:in `<top (required)>'
from /home/saiesh/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
from /home/saiesh/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
from /home/saiesh/.rvm/gems/ruby-1.9.3-p429/gems/rails-2.3.8/lib/rails_generator.rb:37:in `<top (required)>'
from /home/saiesh/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
from /home/saiesh/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require'
from /home/saiesh/.rvm/gems/ruby-1.9.3-p429/gems/rails-2.3.8/bin/rails:15:in `<top (required)>'
from /home/saiesh/.rvm/gems/ruby-1.9.3-p429/bin/rails:19:in `load'
from /home/saiesh/.rvm/gems/ruby-1.9.3-p429/bin/rails:19:in `<main>'
from /home/saiesh/.rvm/gems/ruby-1.9.3-p429/bin/ruby_noexec_wrapper:14:in `eval'
from /home/saiesh/.rvm/gems/ruby-1.9.3-p429/bin/ruby_noexec_wrapper:14:in `<main>'

Gem List

 *** LOCAL GEMS ***

actionmailer (3.2.13, 2.3.12, 2.3.8) actionpack (3.2.13, 2.3.12, 2.3.8)
activemodel (3.2.13)
activerecord (3.2.13, 2.3.12, 2.3.8)
activeresource (3.2.13, 2.3.12, 2.3.8)
activesupport (3.2.13, 2.3.12, 2.3.8)
arel (3.0.2)
bourbon (3.0.1)
builder (3.0.4)
bundler (1.3.5)
bundler-unload (1.0.1)
cancan (1.6.10)
coffee-rails (3.2.2) coffee-script (2.2.0)
coffee-script-source (1.6.2)
commonjs (0.2.6) daemons (1.1.9)
delayed_job (3.0.5)
delayed_job_active_record (0.4.4) erubis (2.7.0)
execjs (1.4.0)
formtastic (2.2.1)
formtastic-bootstrap (2.1.3)
haml (4.0.3)
hike (1.2.3)
i18n (0.6.1)
journey (1.0.4) jquery-rails (3.0.1, 2.3.0)
json (1.8.0)
kaminari (0.14.1)
less (2.3.2)
less-rails (2.3.3)
less-rails-fontawesome (0.5.0) libv8 (3.11.8.17 x86-linux)
mail (2.5.4)
meta_search (1.1.3)
mime-types (1.23)
multi_json (1.7.7)
mysql (2.9.1) mysql2 (0.3.11)
polyamorous (0.5.0)
polyglot (0.3.3)
rack (1.4.5, 1.1.6)
rack-cache (1.2)
rack-ssl (1.3.3)
rack-test (0.6.2)
rails (3.2.13, 2.3.8)
railties (3.2.13)
rake > (10.1.0, 10.0.4)
rdoc (4.0.1, 3.12.2)
ref (1.0.5)
rubygems-bundler (1.2.0)
rvm (1.11.3.8)
sass (3.2.9)
sass-rails (3.2.6) sprockets (2.2.2)
therubyracer (0.11.4)
thor (0.18.1)
tilt (1.4.1)
treetop (1.4.14)
twitter-bootstrap-rails (2.2.7)
tzinfo (0.3.37)
uglifier (2.1.1)

1
can u add the error log n the list of gems u r using?prasad.surase
Please view my edited question @prasad.suraseSaiesh
since u r using rails 2, shouldnt u be using ruby 1.8 rather than 1.9.3?prasad.surase

1 Answers

0
votes

why not make use of gemsets for each project?

create a file inside your app called .rvmrc

rvm use --create ruby-x.x.x-version@your_app_name

for exemple:

rvm use --create ruby-1.9.3-head@your_app_name

now when you'll run bundle it will gems to separate folder like in my case:

.rvm/gems/ruby-1.9.3-head@your_app_name

in this case switching from one app to another will load the needed gemset with gems for your app. It's like using RVM to switch between Ruby versions.