インクリボンとタイプライター

セーブがしたいんです…

20170608 ruby メモ

obj.is_a?(klass)
obj.kind_of?(klass)

is_a?メソッドまたはkind_of?メソッドは、レシーバのオブジェクトが引数klassクラスのインスタンスであればtrue、そうでなければfalseを返します。

instance_of?メソッドとは違い、レシーバが属するクラスだけでなく、レシーバが属するクラスの親クラスやインクルードしているモジュールをklassに指定してもtrueが返ります。

次の例では、配列arrArrayクラスのインスタンスですが、ArrayクラスはObjectを親クラスとし、Enumerableモジュールをインクルードしているので、ArrayObjectEnumerableのどれをkind_of?に渡してもtrueになります。

arr = [1, 2, 3]
puts arr.kind_of?(Hash)
puts arr.kind_of?(Array)
puts arr.kind_of?(Object)
puts arr.kind_of?(Enumerable)
false
true
true
true

 

Rubyスクリプトで目にする以下のイディオムは、左辺が未定義または偽なら右辺の値を代入するという意味だ。このイディオムは変数の初期化で良く用いられる。

a ||= true

Rubyの||=というイディオムは左辺が未定義または偽なら代入の意味 -- ぺけみさお

 

sym.to_sym

to_symメソッドは、レシーバのシンボル自身を返します。

sym = :message
p sym.to_sym
:message

 

ref.xaio.jp

 

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]