I am planning on initiating an upgrade from Rails 2 to Rails 3 for a rather big app. Problem is the project is relying on some old gems that are no longer supported by Rails 3.
What choices do I have, knowing that deactivating the dependant functionalities is not an option ? Are there any solutions besides looking for alternate gems ?
the biggest problems when upgrading an app to rails 3 are usually not with the update of the gems...
you can have a look at http://www.railsplugins.org/ to find out if the gems you are using are compatible. i don't know if the page is up to date, rails 3 has been around for a while and rails 4 is in the making.
these are the steps to a sane upgrade path:
update your app to the latest 2.x.x version
update all the gems to the latest compatible version
create a rails3 branch (update will take a long time)
fix all the incompatibilites in your app-code
update/replace/patch all the gems that are not working with rails 3
Related
I want to try Locomotive CMS, while I was installing it, I realised that only runs with rails 3+ version no 4.
As I am currently working in a couple of other apps in rails and I am pretty new to it, I was wondering if is there any way to run one version of rails for locomotive and another one(rails 4) for my other apps. If so how could it be done?
Thanks in advance.
C
You definetely want to start using rvm. It will help you not only separate your gems for different projects, but also separate and manage your Ruby versions. Definetely a great tool.
I am a total n00b and am trying to install Twitter-Bootstrap 3 into my rails project. The twitter-bootstrap-rails gem is unfortunately only for version 2.0, otherwise I would totally use that. Is there some kind of set up magic I need to do in my app to configure it with my Rails project other than copy and paste the Bootstrap directories into my rails project repo?
Any and all advice much appreciated!
I'm working on a small project that has been allocated a small amount of time to maintain and update features. This project is on Rails 2.3.
I'd like to move it to Rails 3.2 but there is little time allocated to this so I would like to do it over a slow gradual process.
I'm thinking that it might be worth moving over to Rails 3.2 on a section-by-section basis.
This would mean that I would create a second application that looks the same as the first one but is located somewhere different and accessed from a different subdomain.
Is this feasible if I just update the Rails 2.3 routes file for certain routes to go to the new application?
Has anyone done this before?
It depends on many parameters but among these the most relevant are :
Does your Rails 2 project already use Bundler ? If not, migrate to it before the migration.
Do you use gems which are known not to work on Rails 3 ?
Does your project already use Rails XSS plugin (https://github.com/rails/rails_xss) ? If not, migrate to it before the migration.
After that, the migration will be easier.
For the migration, I recommend that you create a brand new Rails application using "rails new" command, so that all the boot files will be good. Then migrate the initializers/config files and "app" folder...
Good luck.
So I finally upgraded (and then downgraded because of Unity) Ubuntu and reinstalled RVM but I'b stuck with rails 3.1 now, which is fine but all my old projects are in rails 3.0 and 3.1 has some incompatibilities. Off the top of my head RAILS_ROOT is now Rails.root (which all my projects use in someway), and I was having some issues with heroku when trying to upload a small rails 3.1 app I made to play around (since the PG gem wasnt in my gemlist I couldnt run migrations, and then installing the pg gem caused more issues).
So how do I install rails 3.0 again? I cant seem to find it in the repositories
And I know with gem sets I can install both right? Well if I do that, how do I create a new rails project? Which version of rails would use rails new new_app?
Ok, I understand what you need to do. I would highly recommend making a new Gemset using RVM, that way you can start from scratch and not worry about those things.
To do that, run this in your command line with RVM installed:
// EDIT THIS LINE TO MATCH WHAT YOU WANT
rvm use 1.9.2-or-which-ever-version-you-are-using#temporary_gemset --create
Once this gemset is created, it will be empty, so you can then proceed to install a younger version of rails, like so:
gem install rails -v 3.0.11 // (MAY NEED TO USE SUDO, DEPENDING ON YOUR SET UP)
This should install the older version of rails and its dependencies so that you can still edit and work with your older rails project. Check more of RVM's site for more help on switching between gemsets and creating them.
https://rvm.io//gemsets/
I would still recommend to figure out the differences eventually and move to the newer version for Rails, currently 3.2.5 because they are awesome. Here is some material to show you the differences and new features for when you do that later:
http://railscasts.com/episodes/265-rails-3-1-overview
http://railscasts.com/episodes/282-upgrading-to-rails-3-1
http://railscasts.com/episodes/318-upgrading-to-rails-3-2
I wanted to use this gem:
https://github.com/PRX/apn_on_rails
Finally, after digging through the issues, seems it's not Rails3 ready (yet). Is there some simple way of finding is something is Rails 3 compatible without digging all over?
Thanks!
Aside from creating a fresh Rails app and giving it a try, I tend to look at the commit messages of forks created by other users (i.e. https://github.com/PRX/apn_on_rails/network). In this instance, it looks like there is a fork that runs on Rails 3 that is still being maintained.
Generally, if it isn't mentioned in the readme (on github) then no. Most gems I have used explicitly specify rails 2 and rails 3 install instructions. If this is not the case, then usually someone else will have asked this question and a quick search will reveal.
One other giveaway is the install instructions. The rails 2 way of installing a gem via a Gemfile is:
config.gem GEMNAME
The rails 3 way is:
gem 'apn_on_rails'
This answer is related to the gem you are looking for.