こんにちは、現役沖縄フリーランスエンジニアの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(接尾辞)を使おう - 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で学んでみる
最後に
下記の表に、
フリーランスエンジニア向けの人気エージェントをまとめてみました。
エージェント選びで悩んでいる方は是非参考にしてみてくださいね★
エージェント | 詳細 | 最高単価/月 | 設立 |
---|---|---|---|
|
評判をチェック | 180万円/月 | 2011年 |
ギークスジョブ
![]() |
評判をチェック
![]() |
180万円/月 | 2011年 |
フォスターフリーランス![]() |
評判をチェック | 230万円/月 | 1996年 |
pe-bank(pebank) | 評判をチェック | 200万円/月 | 1989年 |
Midworks(ミッドワークス) |
評判をチェック | 200万円/月 | 2013年 |
|
評判をチェック | 140万円/月 | 2005年 |
あわせて読みたい