いたるところにある Site.find id | Site.find name …
site.name
というのは c1234567890
のような識別子
Slide 4
Slide 4 text
まさかの find
を override
していた
def find id
any_of({_id: id}, {name: id}).first
end
id
もしくは name
どちらでもヒットする
気持ちはわかるけど検索キーはどちらかに統一したほうが良い
なぜならアプリケーション全体で id
と name
どちらで持ち回るのか
が曖昧になる。ここで透過的に処理するのではなく、もう少し手前
で透過的な処理をしたほうが良い
例外出すと信じてたのに…
mongoid
の仕様で一部のフィールドのみを取得した場合は save
でき
ない
set
で直接書き換えるしかない…
site = Site.without(:hoge).first
site.title = 'update'
site.save # NG
site.set(title: 'update') # OK
これは今後しんどくなりそうな雰囲気を感じている
ActiveRecord
ってどうだったっけ…
?
Site has_many Page
TemporaryPage extends Page
temporary_page.site
#=>
temporary_page.site_id
#=> nil
リレーションしているのだからあるはずでは…
?
def site
で定義されていた…
def site
self.public_page.try(:site)
end