railsのバージョンアップ(4.0.0 -> 4.2.5)
移転しました。
約5秒後に自動的にリダイレクトします。
前に作った家計簿アプリのrailsのバージョンが4.0.0のままだったので4.2.5にバージョンアップしました。
やり方はこちらを参考にさせてもらいました。
Ruby on Rails の大掃除! 3.2 → 4.1 にバージョンアップするの巻 - komiyakの通り道
さてまずは、Gemfileの差分を確認から。
なんか空白行の差分もあって見づらいけど、とりあえず最新バージョンに変更。
Gemfileを変更したらばbundle update
を実行して...
エラーになった。。。
一旦Gemfile.lockを削除して。rm Gemfile.lock
bundle install --without production
を実行。
やりましたよ!成功です。
次はrails updateですね?
$ bundle exec rake rails:update conflict config/boot.rb Overwrite /Users/<user name>/dev/ruby/rails/kakeibo/src/config/boot.rb? (enter "h" for help) [Ynaqdh] n skip config/boot.rb exist config conflict config/routes.rb Overwrite /Users/<user name>/dev/ruby/rails/kakeibo/src/config/routes.rb? (enter "h" for help) [Ynaqdh] n skip config/routes.rb conflict config/application.rb Overwrite /Users/<user name>/dev/ruby/rails/kakeibo/src/config/application.rb? (enter "h" for help) [Ynaqdh] n skip config/application.rb conflict config/environment.rb Overwrite /Users/<user name>/dev/ruby/rails/kakeibo/src/config/environment.rb? (enter "h" for help) [Ynaqdh] n skip config/environment.rb create config/secrets.yml exist config/environments conflict config/environments/development.rb Overwrite /Users/<user name>/dev/ruby/rails/kakeibo/src/config/environments/development.rb? (enter "h" for help) [Ynaqdh] n skip config/environments/development.rb conflict config/environments/production.rb Overwrite /Users/<user name>/dev/ruby/rails/kakeibo/src/config/environments/production.rb? (enter "h" for help) [Ynaqdh] n skip config/environments/production.rb conflict config/environments/test.rb Overwrite /Users/<user name>/dev/ruby/rails/kakeibo/src/config/environments/test.rb? (enter "h" for help) [Ynaqdh] n skip config/environments/test.rb exist config/initializers create config/initializers/assets.rb identical config/initializers/backtrace_silencers.rb create config/initializers/cookies_serializer.rb identical config/initializers/filter_parameter_logging.rb identical config/initializers/inflections.rb conflict config/initializers/mime_types.rb Overwrite /Users/<user name>/dev/ruby/rails/kakeibo/src/config/initializers/mime_types.rb? (enter "h" for help) [Ynaqdh] n skip config/initializers/mime_types.rb conflict config/initializers/session_store.rb Overwrite /Users/<user name>/dev/ruby/rails/kakeibo/src/config/initializers/session_store.rb? (enter "h" for help) [Ynaqdh] n skip config/initializers/session_store.rb identical config/initializers/wrap_parameters.rb exist config/locales identical config/locales/en.yml gsub config/initializers/cookies_serializer.rb exist bin identical bin/bundle conflict bin/rails Overwrite /Users/<user name>/dev/ruby/rails/kakeibo/src/bin/rails? (enter "h" for help) [Ynaqdh] n skip bin/rails identical bin/rake create bin/setup
Oh...なんかいっぱいConflictしてますな。
これを1つずつ差分を見ればいいんですね?
- config/boot.rb:上書き
- config/routes.rb:変更なし
- config/application.rb:上書き
- config/environment.rb:上書き
- config/environments/development.rb:上書き
- config/environments/production.rb:上書き
- config/environments/test.rb:上書き
- config/initializers/mime_types.rb:上書き
- config/initializers/session_store.rb:上書き
- bin/rails:上書き
- bin/setup:新規追加
これでよし。
最後に動作確認をしましょう。
テストコードとか書いてないので(^^;)
押せるボタンを全部クリック。魂の16連射!!!!!!!!!!!!!!!!
小さいアプリなのでこれでなんとかなるけど、テストコードはちゃんと書かないとね☆
アクションは問題なかったけど、なんか表示がおかしい。
<%= @expenseAll.sum(:amount, :conditions => ["date=?", date]).to_c %>
@incomeAllは月間のキャッシュフロー(支出分)が入ってるモデルオブジェクト。
ここから、ある1日分の支出合計を表示する箇所なんだけど。。。
なぜか月間の支出合計が表示されています。
実行されているSQLを見るとconditionsの部分の条件が効いていない。
う〜ん、それならばと。ちょっと修正。
<%= @expenseAll.where("date=?", date).sum(:amount).to_c %>
これでちゃんと表示されるようになったけれど、なにが悪かったのかな?
そのうち調べよう(覚えてたらw)
それなりに時間かかったけど、思ってたより手間はかからなかったな。
まあ、サードパーティ製のgemをほとんど使ってなかったのが大きかったと思う。
(。・ω・)ノシ