1

Ruby 1.8 で実行され、Rails 2 を使用する別の開発者から古いプロジェクトを継承しました。Ruby と Rails のプロジェクトは初めてなので、そのようなタイプのプロジェクトのアップグレードについてアドバイスが必要でした。このプロジェクトの大きな問題の 1 つは、テスト カバレッジがないことです。単体テストは一切ありません。プロジェクトの統計は次のとおりです。

$ cloc .

http://cloc.sourceforge.net v 1.56  T=3.0 s (149.3 files/s, 15714.0 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Ruby                           379           3106           1476          15246
Javascript                      18           2981           2369          11008
CSS                             16            690           1208           7156
HTML                            21            324             69           1039
YAML                            13             46            164            236
Bourne Shell                     1              2              5             17
-------------------------------------------------------------------------------
SUM:                           448           7149           5291          34702
-------------------------------------------------------------------------------

私の計画は、新しいRailsプロジェクトを開始し、テーマの失敗を確認するテストを作成し、古いコードを少しずつ取り入れ、更新が必要な部分を更新して前進することです.

これは私が言われたほど困難ですか?上記のアプローチは現実的ですか?注意すべき落とし穴は何ですか?

4

2 に答える 2

2

最近、私はこれを自分で行いました。Rails2.3プロジェクトをRails3.0および3.1に移行してから、3.2に移行しました。少し大変でしたが、私の観察では:

  1. あなたが提案するように、私は新しいプロジェクトを作成しようと試み始めました-しかし、私はすぐにそれに反対することに決め、既存のプロジェクトを更新するだけに戻りました。
  2. Rails3への移行に関するRailsCastsは非常に便利であることがわかりました。最初のものはここにあります:http://railscasts.com/episodes/225-upgrading-to-rails-3-part-1
  3. とにかくテストを書くつもりなら(これは絶対に正しいことです)、3.0にアップグレードした後にこれを始めるのが最も簡単だと思いました。私が覚えているように、2.3から3.0の間で、互換性のあるバージョンのテストgemに関していくつかの問題がありました。私のお気に入りのテスト環境には、RSpecCucumber、およびGuardが含まれます。このRailsCastは、テストの設定に最適です:http: //railscasts.com/episodes/275-how-i-test
  4. バージョン管理はあなたの友達です。作業したメジャーポイントリリースごとにgitブランチを作成しました。そうすれば、私が何かをひどく壊したとき、私は簡単に枝を捨てて再試行することができました。

それの長短-それは実行可能ですが、それを正しくするのに少し時間がかかります。「新鮮な」プロジェクトからやり直すと、少なくとも私の場合は、必要でも役に立たないことがわかりました。

于 2013-01-28T03:36:54.743 に答える
1

うーん..それは最善のアイデアではないと思います.最新の安定した 2.x リリース (現在は 2.3.15) にアップグレードすることをお勧めします.

とにかくこれをやりたい場合は、次の記事が役立つかもしれません。

http://www.railsdispatch.com/posts/upgrading-a-rails-2-app-to-rails-3

http://net.tutsplus.com/tutorials/ruby/5-awesome-new-rails-3-features/

Rails 2 から Rails 3 への移行

また、このプラグイン:

https://github.com/rails/rails_upgrade

于 2013-01-25T06:38:13.533 に答える