MOE3: Rails4 の find_by
find_by メソッド
小ネタ。
今さら知ったが、Rails4 では find_by_xxx
系のメソッドが非推奨となり、代わりにfind_by
メソッドが導入されていた。
元々 method_missing
で泥臭いことをやっていたっぽい find_by_xxx
が好きになれず、専ら where
と first
の組み合わせを使用していたので早速導入。
app/models/order_status.rb
Before。
class OrderStatus < ActiveRecord::Base UNEXECUTED = OrderStatus.where(code: 0).first INVALID = OrderStatus.where(code: 100).first SUCCESS = OrderStatus.where(code: 200).first SATISFIED = OrderStatus.where(code: 201).first FAILURE = OrderStatus.where(code: 300).first CUT = OrderStatus.where(code: 301).first STANDOFF = OrderStatus.where(code: 302).first DISLODGED = OrderStatus.where(code: 303).first CONFLICT = OrderStatus.where(code: 400).first DISBANDED = OrderStatus.where(code: 401).first end
After。
class OrderStatus < ActiveRecord::Base UNEXECUTED = OrderStatus.find_by(code: 0) INVALID = OrderStatus.find_by(code: 100) SUCCESS = OrderStatus.find_by(code: 200) SATISFIED = OrderStatus.find_by(code: 201) FAILURE = OrderStatus.find_by(code: 300) CUT = OrderStatus.find_by(code: 301) STANDOFF = OrderStatus.find_by(code: 302) DISLODGED = OrderStatus.find_by(code: 303) CONFLICT = OrderStatus.find_by(code: 400) DISBANDED = OrderStatus.find_by(code: 401) end
わずかな違いだがすっきり。