无须升级整个系统的Rails,只需要在项目中的Rakefile中加入下面的代码,然后运行rake rails:freeze:edge:
namespace :rails do
namespace :freeze do
desc 'Lock to latest Edge Rails, for a specific release use RELEASE=1.2.0'
task :edge do
require 'open-uri'
version = ENV["RELEASE"] || "edge"
target = "rails_#{version}.zip"
url = "http://dev.rubyonrails.org/archives/#{target}"
chdir 'vendor' do
puts "Downloading Rails from #{url}"
File.open('rails.zip', 'wb') do |dst|
open url do |src|
while chunk = src.read(4096)
dst << chunk
end
end
end
puts 'Unpacking Rails'
rm_rf 'rails'
`unzip rails.zip`
%w(rails.zip rails/Rakefile rails/cleanlogs.sh rails/pushgems.rb rails/release.rb).each do |goner|
rm_f goner
end
end
puts 'Updating current scripts, javascripts, and configuration settings'
Rake::Task['rails:update'].invoke
end
end
end
这段代码其实是Rails2.1里的rails:freeze:edeg的Rake任务代码,因为Rails的代码库已经迁移至github,好像svn不提供新的版本,现在获取Rails最新版本的方法一是到github那里clone下来,要么就到http://dev.rubyonrails.org/archives/%E4%B8%8B%E8%BD%BD%E4%B8%80%E4%B8%AA%E6%89%93%E5%8C%85%E5%A5%BD%E7%9A%84zip%E6%96%87%E4%BB%B6%E3%80%82