久しぶりに仕事ではないコードを書いた

horesa.se に使われている horesase-boys の本文データを更新するための horesase-body というものをつくって1年間放置していたのだけれど、久しぶりに horesase-boys を更新したくなって立ち上げて、動かなくなっていたので修正をした。

Kaminari を使った

まず、画像を1000枚以上いっぺんに取得していたのだけれど、サーバに負荷かけそうだなぁと前々から不安だったので、 Kaminari を使うように変更した。
Kaminari は仕事のコードで使用していて、こういうコードを書けば良いというのがわかっていたのですごく簡単に変更できた。
以前は、触れたことがない(少ない)新しいものだったので、使うのに抵抗があっていれてなかったけど、今ではその抵抗感が信じられないくらいだ。本当に簡単。
こういう風に「食わず嫌い」的に使ってないけど使えば超簡単 みたいなものは結構多そうだなぁ。

そうそう、仕事のおかげでこういう気持ちになることが多くて、最近やっと RailsCasts を少しずつやってみるようになった。仕事で関わっているチームはどんどん良いチームになっていく感じがあって、すごく良い刺激を沢山うけるので、仕事のために使えそうなコードを覚えるのが楽しいと思える。そういう状態で Rails の勉強ができてとても幸せだ。

Rails4 にした

それからバージョンが古いのが気になったので Rails4 にアップデートしてみた。
はじめての Rails アップデート。

bundle update した

Gemfile 変更したあとに bundle install しかしたことなくって、その前に bundle update しないと関連Gemのバージョンを合わせられないっていうのにたどり着くのも時間かかった。bundle update がやってくれること初めてわかったかもしれない。

strong_parameter の対応をした

rails server したら attr_accessible で落ちていたので、該当行を消したら動いた。アッサリ!
3.2 -> 4.0 はそんなに update が大変じゃないらしいし、horesase-body は小さいから直すとこも少ない!
params[:horesases] を each して直でパラメータを設定して save してて、strong_parameter 使ってなくても保存できて大丈夫かな…と思った。each して一個ずつ取り出して save してるとこはどういう書き方が適切なんだろうなぁ。(そもそももっと簡単な書き方ありそう)

DEPLECATION WARNING がいっぱい

rake build したら DEPLECATION WARNING が3つくらい出た。
機能的には動いてたので、rails server の時にも出ていた config.whiny_nils だけ対応して終わった。

気になる

Rails4.0 を rails new した時に生成されるものと、Rails3.2 から 4.0 にアップデートした状態のものでは、config 配下の設定値や Gemfile の中身が全然違う気がする。update の時はここは直さなきゃいけない っていうのを掴むには、やっぱり 4.0 での変更点をチェックしなきゃいけないのかなあ。rails new で生成されるファイル見比べるのは骨だしな……

EPISODE #400 What's New in Rails 4 のASCII CAST の日本語(旗から飛べる) 見て確認しよ。


…と思ったらなんかまさにこれっていうのあったー!!
EPISODE #415 Upgrading to Rails 4

  • 研修の時に聞いた「Rails は scaffold をしてみると書き方の違いがわかる」っていうのはなるほどだった。前にも聞いたことある気がする。

今日はこれで終わり

警告残したままで終わったけど、「こうやって一個ずつ解消していくんだなぁ」っていうのを少し実感できてよかった。