スリ飯屋MaLankaのフリーエンジニアな日々

このブログでは、フリーランス5期目となる自身の実体験から、フリーランスエンジニアになるためのノウハウ、ブログや沖縄移住、スリランカの最新情報について発信します。

【Rails】enum型でカラム名を定義すると、scopeが自動生成される

※記事内に提携先企業のアフィリエイト広告(リンク、バナー等)、Google広告を含む場合があります

【Rails】enum型でカラム名を定義すると、scopeが自動生成される


こんにちは、現役沖縄フリーランスエンジニアのmah(MaLanka)です。


このブログでは、

僕がIT未経験から約1年でフリーランスエンジニアになるまでの過程、

ノウハウなどを書いていきます。


今回は、


  • 【Rails】enum型でカラム名を定義すると、scopeが自動生成される


です。




【Rails】enum型でカラム名を定義すると、scopeが自動生成される




概要


enum型でカラム名を定義すると、scopeが自動生成されます。


enumで定義したカラム名はそのまま、

モデル.enumで定義したカラム名

のようにする事ができます。


なので、

enumで定義したカラム名のscopeは自分で定義する必要はありませんし、

当然、whereを使う必要もありません。





enum status: { deleted: -1, left: 0, real: 1 }, _prefix: true

というenumを定義している場合。


Hoge.status_deleted
Hoge.status_left
Hoge.status_real

のように検索出来ます。


検証


Railsコンソールで確認します。

irb(main):004:0> Hoge.status_deleted
# リレーションオブジェクトが返る。
=> #<ActiveRecord::Relation [#<Hoge id: 4, name: "hoge", status: 'deleted']


上記は、下記と同じです。

Hoge.where(status: :real)
Hoge.where(status: :left)
Hoge.where(status: :deleted)


whereで条件指定しなくて良くなったのでスッキリ書けますね。


おまけ


レシーバがインスタンスの場合、

定義したenumの名称で論理値の判定や更新が出来ます。


何らかのインスタンス.status_deleted? => 論理値を返す
何らかのインスタンス.status_deleted! => statusをdeletedに更新する




以上です。




参考リンク


Rails5 から enum 使う時は_prefix(接頭辞)_suffix(接尾辞)を使おう #Rails5 - Qiita




RailsやRubyを学びたい人へ


RailsやRubyを学びたい人は、

RailsHack(レイルズハック)という、

最近できた新しいプログラミングスクール(今なら通常価格69,800円が、早期割で29,800円!)か、

Udemy で下記のコースを受講すると良いです★


✅1. フルスタックエンジニアが教える 即戦力Railsエンジニア養成講座

✅2. 【はむ式】ハンズオンで学ぶRuby on Rails 6【Dockerにも触れられる】 <- おすすめ。ハムさんはReactやTypeScriptの教材も非常に丁寧。

✅3. はじめてのRuby on Rails入門-RubyとRailsを基礎から学びWebアプリケーションをネットに公開しよう




また、

Udemy は定期的にセールをやっていますし(90%OFFとかもザラ)、

「30日間なら返金できる」ので、

満足できなかった時でも安心です。



【公式】RailsHack(レイルズハック)

【公式】Udemyで学んでみる




最後に


下記の表に、

フリーランスエンジニア向けの人気エージェントをまとめてみました。


エージェント選びで悩んでいる方は是非参考にしてみてくださいね★


エージェント 詳細 最高単価/月 設立
フリエン(furien) 評判をチェック 180万円/月 2011年
ギークスジョブ 評判をチェック 180万円/月 2011年
フォスターフリーランス 評判をチェック 230万円/月 1996年
pe-bank(pebank) 評判をチェック 200万円/月 1989年
Midworks(ミッドワークス) 評判をチェック 200万円/月 2013年
レバテックフリーランス 評判をチェック 140万円/月 2005年




あわせて読みたい


www.malanka.tech


www.malanka.tech


www.malanka.tech


www.malanka.tech