find_by(nil) にハマる

意図せず、

Team.find_by(session[:team_id])

みたいなコードを書いちゃってた。

本来は、

Team.find_by(id: session[:team_id])

と書きたかった。

後者はsessionに何も入ってないとnilが返ってくるけど、前者は一番最初のレコードが返ってきてしまう。(Team.where(nil).takeになっちゃってるイメージ)

気づきにくくて時間を無駄にした。

ちなみにRailsは4.2。

Rails 4.18 → 4.2.0のアップデート

A Guide for Upgrading Ruby on Rails — Ruby on Rails Guides

$ bundle update rails slim-rails devise
$ rake rails:update

rspecを実行すると、devise関連でmimes_for_respond_torequire_no_authenticationがないというエラーが大量に出た。

, github: 'plataformatec/devise'を追加して最新版を利用。
また、respondersのバージョンが1.0.0だったのでupdate。

$ bundle update responders

serialized_attributesがRails 5でなくなるよというWARNINGはひとまず放置。

あとpaperclipのURLのタイムスタンプがテスト中ずれるという問題があったけど、実害無しなので、タイムスタンプを見ないようにテストを修正。

こんなもんか。

_initDataを定義したらVue.jsがおかしくなった

$dataの初期化を再利用したくて、_initData()というメソッドを定義したら、呼び出してないところでも呼ばれて変になった。

おや?と思って、Vueのソースを見てみると、_initで始まるメソッドがいくつか内部で利用されていた。

いちいち確認するのも面倒だし、__(2個)とかで始める方がいいかな。(_をつける理由は、Privateなメソッドだとわかりやすいようにしたいだけなので、特にこだわりはない。)

さくらのVPSに繋がらなくなった

過去のブログを参照しようとしたら見れなくて困った。
SSHもダメ。
利用しているプランに関するメンテナンスや障害情報もなし。
結局、コントロールパネルから強制再起動したら行けた。
ここ最近DoSとかもあったっぽいし、なんか不安定になってたのかな。

Interpolation

Rubyの式展開について調べたかったんだけど、英語で何ていうかパッと出てこなくて困った。