2020-02-08から1日間の記事一覧

属性の更新

属性の更新をしたい時は注意 チュートリアルの6.3.2で before_save {self.email = email.downcase}としたり 9.3で self.remember_token = User.new_token とわざわざself使ってるのは、単に emailとしたりremember_tokenとしたりするとそれがローカル変数の…

update_attribute

update_attributesは検証に失敗したら呼び出されないのに update_attributeは検証回避の効果がある なんか不思議

仮想的な属性

この説明がわかり易かったかな https://ruby-rails.hatenadiary.com/entry/20141229/1419856433 DBに直接反映はさせたくないけどフォームとかでは使いたい、みたいな時にモデルに定義するっていうのが主な用途かな

ダイジェスト digest 割と大事

本当に簡単に説明してくれてるんだろうけど、このサイトの説明がわかり易かった https://techacademy.jp/magazine/21231 要はハッシュや16進数として暗号化して出力ためのメソッドで、暗号化されたものから元の内容は推測出来ないようになってるってのがdi…

or equal

@foo =>nil >>@foo = @foo || "bar" => "bar" >> @foo = @foo || "baz" => "bar" Rubyは||式を左から右に評価し、演算子の左の値が最初にtrueになった時点で処理を終了するという短絡評価をするので、nilやfalseは飛ばして"bar"が代入されるし、@fooに値が入…

sessionメソッド

railsには事前定義済みのsessionメソッドがあり、ハッシュのような扱い方ができるので session[:user_id] = user.id チュートリアルの抜粋 上のコードを実行すると、ユーザーのブラウザ内の一時cookiesに暗号化済みのユーザーIDが自動で作成されます。この後…

flash

flash.now[:danger]='エラーメッセージの内容' flash.nowならレンダリングが終わったページにフラッシュを表示できる上にリクエスト発生時に消えるのでエラーメッセージ表示時に便利。 webアプリケーションに常識的に備わってる機能としてページにメッセージ…