Ruby on Rails
結論 Boolean型の入力チェックはpresence: trueだと出来ない inclusion:{in: [true, false]}であれば、チェック可能 基本的な入力必須のバリデーション Railsのモデルのバリデーションにおいて、入力必須のチェックを行う場合、presence: trueが良く用いられ…
【結論】 ・DHH(David Heinemeier Hansson)は、Ruby on Railsの生みの親 ・DHH流ルーティングとは、DHHが推奨しているRailsのルーティング手法 ・具体的には、コントローラはデフォルトのCRUDアクション(index、show、new、edit、create、update、destroy…
【結論】 ・Controllerのコールバックメソッドは、onlyとexceptで実行するアクションを指定できるが、適切に使い分けないと、バグ発生の要因となり得る ・基本的にonlyを使用する。指定するアクションが増えて、追加するアクションが無くなったらexceptに置…
【結論】 ・nil?メソッドは、レシーバーがnilのときtrueを返し、nilではない場合falseを返す ・empty?メソッドは、オブジェクトが空(空文字列("")・空配列([])・空ハッシュ({}))のときtrueを返し、1つ以上の要素があればfalseを返す。文字列・配列・…
【結論】 ・Mysql2::Error: Data too long for columnとは、DB側の文字数制限を超えたデータを保存しようとした際に発生するエラー ・DB側の制限なので、モデルなどにバリデーションを設定していないとしても、このエラーは発生する ・対応策は、DB側の制限…
【結論】 ・Rails のマイグレーションで使用されるchange_tableメソッドには、bulk: trueのオプションを設定できる ・このオプションにより、ALTER TABLEクエリにまとめてくれる ・このオプションは MySQLとPostgreSQLのみサポートされていている 【目次】 c…
【結論】 ・マイグレーションを作成する場合、up/downメソッドを利用する方法と、changeメソッドを利用する方法が存在する ・up/downメソッドはマイグレーション時とロールバック時の両方の処理内容を定義する必要があるのに対して、changeメソッドはマイグ…
【結論】 ・URLパラメータ(クエリ文字列)とは、URLの末尾に?を付け続けて&キー=値と記述することで、サーバーに情報を送るためにURLに付け加える変数 ・application/x-www-form-urlencodedのURLエンコードとは、URLにおいて使用できない文字を使う際に…
【結論】 ・カラムのNOT NULL制約を途中で設定or削除するには、change_column_nullメソッドを利用してマイグレーションを行う ・change_column_null(table_name, column_name, null, default = nil) ・第3引数のnullフラグに、trueを指定すればNOT NULL制約…
【結論】 ・CSRFとは、WEBアプリケーションの投稿機能などを利用して悪意のあるコードを仕込むことで、認証済みのユーザーに意図しないコマンドを実行させる攻撃手法 ・対策は、GETとPOSTを適切に使い分け(RESTful)、GET以外のリクエストにセキュリティト…
【結論】 ・「browser」とは、Railsのgemの一種 ・アクセス元のブラウザ(IE/Safari/Chromeなど)や、デバイス(PC/スマホなど)の種類を判定してくれる ・ブラウザやデバイス毎に処理方法を切り替えたい場合に有用 【目次】 ブラウザ・デバイスの判定が必要…
【結論】 ・Basic認証とは、ページへのアクセスを ID/パスワードで制限する為の機能。・手軽に実装できる反面、情報漏洩のリスクがある為、 セキュリティリスクの少ない物か、 一時凌ぎの対策として実装される。 【目次】 チーム開発でBasic認証の実装を行っ…