How to use the Rails 2.3 app generator when I have

2020-04-17 05:08发布

问题:

to clarify: there's only one rails command, which gets installed from the latest Rails gem, which is Rails 3 ATM. However, I'm required to create a Rails 2.3 app.

Running ruby /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.8/bin/rails fails with a NoMethodError, I suppose because it also tries to use gems from the 3.0.0 release.

Uninstalling the gem produces some strange results:

$ gem uninstall rails-3.0.0  
ERROR:  While executing gem ... (Gem::InstallError)
    cannot uninstall, check `gem list -d rails-3.0.0`

$ gem list -d rails-3.0.0  

*** LOCAL GEMS ***
(and no gems here)

What should I do?

回答1:

The easiest way to do it was:

  1. Create the directory for the project
  2. Create a Gemfile there containing

    gem "rails", "2.3.9"
    gem "sqlite3-ruby", :require => "sqlite3"
    
  3. Run bundle install

  4. Run bundle exec rails . to create an app in the current path

You don't even need rvm to do this.



回答2:

(I assume 2.3.11, given it's the latest)

rails _2.3.11_ new app will do this for you without you having to muck about.



回答3:

(Had to make a comment since I don't have enough Stack Overflow cred and can't directly respond to answers yet.)

For folks running rails 3 now the "new" command is now required for creating new rails applications. As such "new" will need to be appended to the end of the commands.

So for Leonid Shevtsov's answer, Step 4: bundle exec rails new .

And for Robert Speicher's answer: rails new .



回答4:

Install rvm and then create a new gemset, so that Rails 2 is isolated.

Or, go to the directory where you want your Rails 2 app to be, create a Gemfile like a Rails 3 app, but specify gem "rails", "~> 2.3" and run bundle install, and you should now be able to issue rails .