20170608 ruby メモ
is_a?
メソッドまたはkind_of?
メソッドは、レシーバのオブジェクトが引数klassクラスのインスタンスであればtrue
、そうでなければfalse
を返します。
instance_of?
メソッドとは違い、レシーバが属するクラスだけでなく、レシーバが属するクラスの親クラスやインクルードしているモジュールをklassに指定してもtrue
が返ります。
次の例では、配列arr
はArray
クラスのインスタンスですが、Array
クラスはObject
を親クラスとし、Enumerable
モジュールをインクルードしているので、Array
、Object
、Enumerable
のどれをkind_of?
に渡してもtrue
になります。
Rubyスクリプトで目にする以下のイディオムは、左辺が未定義または偽なら右辺の値を代入するという意味だ。このイディオムは変数の初期化で良く用いられる。
a ||= true
Rubyの||=というイディオムは左辺が未定義または偽なら代入の意味 -- ぺけみさお
to_sym
メソッドは、レシーバのシンボル自身を返します。
build
newメソッドのAlias
モデルオブジェクトを生成する。
保存はまだされていないため、saveメソッドなどを使って保存する。
生成と同時に保存したい場合は、createメソッドを使用する。
使い方
モデル.build([属性])
例
引数なし
person.pets.build
# => #<Pet id: nil, name: nil, person_id: 1>
build - リファレンス - - Railsドキュメント
pluck
任意のカラムの配列を取得(pluck)
説明
任意のカラムの配列を取得する
使い方
モデル.pluck(カラム名)
例
Person.pluck(:id)
# SELECT people.id FROM people
# => [1, 2, 3]