我试图破解一些开源rails应用程序,以了解如何在rails中构建一些不同的功能,特别是我想使用的是:
http://github.com/caffo/colorplan
但是,据我所知,自从rails 2.0.2以来,这还没有升级。我想将它升级到Rails 4.0.1以了解差异以及最终能够添加到应用程序。有没有一种简单的方法来升级这个应用程序,或者有人能指出我正确的方向来开始升级它?
答案 0 :(得分:0)
哇,这是一个很大的问题。我没有在一个WHILE中从rails 2做过更新,所以这很有趣。这只会让你开始,你将有很长的路要走。
首先,创建一个新的rails 4应用程序。太多的框架已经改变,只需要几个小时或几天就可以到达应用程序启动的地方,更不用说工作了。因此,请创建一个新应用,然后复制原始应用的各个部分。
**使用全局别名完成git提交以使提交成为一个内容,您也可以使用:
git config --global alias.add-commit '!git add -A && git commit'
第1步 - 创建新应用:
rails new colorplanit4
第2步 - 设置一个git存储库,你需要进行间歇性提交:
cd colorplanit4
git init .
git add-commit -m "Init"
第3步 - cp迁移,app文件夹和运行db:migrate
cp -r ../colorplanit/db/migrate ./db/
rm -rf app
cp -r ../colorplanit/app .
bundle exec rake db:migrate
git add-commit -m "add init migrations & app"
第4步 - 更新路线 - 这可能需要调整,但从我看到的内容:
Colorplanit4::Application.routes.draw do
match 'logout', to: 'session#destroy', via: :delete
get 'login', to: 'session#new'
match 'register', to: 'users#create', via: :post
get 'signup', to: 'users#new'
resources :users
resource :session
resources :projects do
member do
get :work
get :pause
get :importance
get :archive
end
collection do
get :archived
end
end
resources :users, :sessions
resource :session, :controller => 'sessions'
root to: "projects#index"
match "about" => "main#about", via: :get
match "status" => "main#status", via: :get
get ':controller/:action/:id'
get ':controller/:action/:id.:format'
end
git add-commit -m "updated routing table"
步骤5 - 将 projects_controller.rb中的before_filter替换为before_action
before_action :login_required
before_action :age, :only => [:index]·
步骤6 - 将application.rb替换为新的application_controller.rb
class ApplicationController < ActionController::Base
end
这会将应用程序带到可以启动的地方。然后我将删除身份验证并用devise替换它(仅为了简单起见)
祝你好运