Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

Ruby on Rails

Ruby on Rails | ActiveRecord | Callback

概要 ActiveRecord | Callback 詳細 Active Recordはそのライクサイクルに様々なフックが用意されています。 Callback はクラスマクロ形式で設定する。例えば class User < ActiveRecord::Base validates :login, :email, presence: true before_validation …

Ruby on Rails | Validation | ActiveModel::EachValidator

概要 ActiveModel::EachValidator 詳細 ActiveRecord で、validation時に 再利用しやすく、Railsの組み込みのValidatorと同じように 呼び出せる Validator を作りたい場合、 ActiveModel::EachValidator を継承して Validator を作成します。 サンプル テー…

Ruby on Rails | Validation | conditional

概要 conditional 詳細 ActiveRecord で、validation時に if や unless を利用することで、 特定の条件下での validation を行うことができます。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "titl…

Ruby on Rails | Validation | validates_with

概要 validates_with 詳細 ActiveRecordで、validation時にvalidates_withを利用することで、 任意のValidatorでチェックを行うことができます。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title…

Ruby on Rails | Validation | validates_each

概要 validates_each 詳細 ActiveRecordで、validation時にvalidates_eachを利用することで、 複数のフィールドに対して、同じチェックを行うことができます。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT…

Ruby on Rails | Validation | uniqueness

概要 uniqueness 詳細 ActiveRecordで、validation時にuniquenessを利用することで、 値が一意であることをチェックします。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "te…

Ruby on Rails | Validation | strict

概要 strict 詳細 ActiveRecordで、validation時にstrictを利用することで、 検証エラー時に例外(ActiveModel::StrictValidationFailed)を投げます。 また、自分で任意のエラーを指定することも可能です。 サンプル テーブル定義 CREATE TABLE "articles" ( …

Ruby on Rails | Validation | presence

概要 presence 詳細 ActiveRecordで、validation時にpresenceを利用することで、 nilや空白の入力をチェックすることができます。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255)…

Ruby on Rails | Validation | on

概要 on 詳細 ActiveRecordで、validation時にonを利用することで、 Modelの任意のアクション時のみValidationを実行することができます。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varc…

Ruby on Rails | Validation | numericality

概要 numericality 詳細 ActiveRecordで、validation時にnumericalityを利用することで、 数値のみを保持しているかどうかチェックを行うことができます。 オプション一覧 option 内容 only_integer 整数のみ greater_than より大きい greater_than_or_equal…

Ruby on Rails | Validation | allow_nil

概要 allow_nil 詳細 ActiveRecordで、validation時にallow_nilを利用することでnilを許容します。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "text" text, "created_at" d…

Ruby on Rails | Validation | allow_blank

概要 allow_blank 詳細 ActiveRecordで、validation時にallow_blankを利用することで nil, 空文字 を許容します。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "text" text, …

Ruby on Rails | Validation | absence

概要 absence 詳細 ActiveRecordで、validation時にabsenceを利用することで、 nilや空白の入力になっていることをチェックすることができます。 presentの反対のチェックをします。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY …

Ruby on Rails | Validation | exclusion

概要 exclusion 詳細 ActiveRecordで、validation時にexclusionを利用することで、 除外すべき値を設定することができます。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "te…

Ruby on Rails | Validation | inclusion

概要 inclusion 詳細 ActiveRecordで、validation時にinclusionを利用することで、 許容する値を設定することができます。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "text…

Ruby on Rails | Validation | format

概要 format 詳細 ActiveRecordで、validation時にformatを利用することで、 正規表現によるパラメータチェックを行うことができます。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar…

Ruby on Rails | Validation | length

概要 length 詳細 ActiveRecordで、validation時にlengthを利用することで、 最大値 最小値 範囲 固定文字数 など、文字数に関わるチェックを行うことができます。 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT…

Ruby on Rails | Validation | validates_associated

概要 validates_associated 詳細 ActiveRecordで、関連するテーブルとともに正当性をチェックしたい場合に validates_associatedを利用します、 サンプル テーブル定義 CREATE TABLE "articles" ( "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title"…

Ruby on Rails | Validation | valid? invlid?

概要 valid? invlid? 詳細 ActiveRecordで、validation設定時にvalid? => 現状の設定値が正しいかどうか真偽値で返却(正しい場合に true) invalid? => 現状の設定値が誤っているかどうか真偽値で返却(誤っている場合にtrue) サンプル テーブル定義 CREAT…

Ruby on Rails | ActiveModelの規約

概要 ActiveModelの規約 詳細 ActiveModelは、いくつかの規約を前提とすることで成り立っています。 クラス名・テーブル名 クラス名は対象の単数形のアッパーキャメルケース テーブル名は対象の複数形のスネークケース 主キー キー名を id とする 外部キー …

Ruby on Rails | Asset Pipeline

概要 Railsが3.1から採用している *Asset Pipeline* について。 Asset Pipelineとは? Asset Pipelineは以下を行っています CoffeeScript や SCSS をコンパイルする *js/css* などがそれぞれ複数合った場合に *application.js/.css* に結合する *application…

ActiveSupport | Date calculations

概要 Date calculations 詳細 Date calculations について Date calculations 日付の操作に関する各種メソッドを提供します。 サンプル # encoding: utf-8 require 'active_support/core_ext/date/calculations' require 'tbpgr_utils' date = Date.new(2014…

ActiveSupport | Range#range_overlaps?

概要 Range#range_overlaps? 詳細 Range#range_overlaps? について Range#range_overlaps? メソッドの範囲が重なっているかどうかを返却する サンプル # encoding: utf-8 require 'active_support/core_ext/range/overlaps' require 'tbpgr_utils' bulk_puts…

ActiveSupport | Range#include?

概要 Range#include? 詳細 Range#include? について Range#include? 引数が範囲に含まれているか確認する サンプル # encoding: utf-8 require 'active_support/core_ext/range/include_range' require 'tbpgr_utils' bulk_puts_eval binding, <<-EOS (1..5)…

ActiveSupport | Range#to_s

概要 Range#to_s 詳細 Range#to_s について Range#to_s 範囲を文字列にする サンプル # encoding: utf-8 require 'active_support/core_ext/hash/keys' require 'tbpgr_utils' hash = { :key1 => :value1, :key2 => :value2, :key3 => :value3, "key4" => :v…

ActiveSupport | Hash#stringify_keys

概要 Hash#stringify_keys 詳細 Hash#stringify_keys について Hash#stringify_keys キーを文字列にする サンプル # encoding: utf-8 require 'active_support/core_ext/hash/stringify_keys' require 'tbpgr_utils' hash = { :key1 => :value1, :key2 => :v…

ActiveSupport | Hash#to_xml

概要 Hash#to_xml 詳細 Hash#to_xml について Hash#to_xml Hashをxmlに変換する。 サンプル # encoding: utf-8 require 'active_support/core_ext/hash/conversions' require 'tbpgr_utils' I18n.enforce_available_locales = true hash = { :key1 => :value…

ActiveSupport | Array#split

概要 Array#split 詳細 Array#split について Array#split 文字列のsplitの配列版 サンプル # encoding: utf-8 require 'active_support/core_ext/array/grouping' require 'tbpgr_utils' I18n.enforce_available_locales = true ary = [2, 1, 3, 1, 4] bulk…

ActiveSupport | Array#in_groups

概要 Array#in_groups 詳細 Array#in_groups について Array#in_groups 引数で指定した要素数の配列に分割します。 サンプル # encoding: utf-8 require 'active_support/core_ext/array/grouping' require 'tbpgr_utils' I18n.enforce_available_locales = …

ActiveSupport | Array#in_groups_of

概要 Array#in_groups_of 詳細 Array#in_groups_of について Array#in_groups_of 第一引数に指定した要素数ごとで配列を分割します。 デフォルトでは、余った要素はnilになります。 第二引数を指定した場合、余った要素に指定した値が設定されます。 サンプ…