プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Ruby on Rails
  • 【Ruby on Rails】「Enumrize」について
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Ruby on Rails】「Enumrize」について

01.30

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

事前準備

model側

1
2
3
4
5
class Japan
  extend Enumerize
 
  enumerize :sikoku, in: { tokusima: 1, kagawa: 2, ehime: 3, kouti: 4 }
end

locales側

1
2
3
4
5
6
7
8
ja:
  enumerize:
    japan:
      sikoku:
        tokusima: 徳島
        kagawa: 香川
        ehime: 愛媛
        kouti: 高知

実装

インスタンスメソッド(Enumの個々の値を操作する)

これでnewしたとします。

1
japan = Japan.new(sikoku: :kouti)

インスタンスのクラスはEnumrizeモジュールのValueクラス「Enumrize::Value」が返る

1
japan.sikoku.class

https://github.com/brainspec/enumerize/blob/master/lib/enumerize/value.rb

「高知」が返る

1
japan.sikoku_text

値(4)が返る

1
japan.sikoku.value

クラスメソッド(Enumの全体の値を操作する)

クラスを操作するにはEnumrizeモジュールのattributeクラスになります。

1
Japan.sikoku.class

https://github.com/brainspec/enumerize/blob/master/lib/enumerize/attribute.rb

文字列の配列(["tokusima","kagawa","ehime","kouti"])が返る

1
Japan.sikoku.values

2次元配列([["徳島","tokusima"],["香川","kagawa"],["愛媛","ehime"],["高知","kouti"]])が返る

1
Japan.sikoku.options

scope(ActiveRecord::Relationで処理)

事前準備

1
2
3
4
5
class Japan
  extend Enumerize
 
  enumerize :sikoku, in: { tokusima: 1, kagawa: 2, ehime: 3, kouti: 4 }, scope: true
end

値を取得する。

徳島に該当するレコードを全件ActiveRecord::Relationの形で取得できます。modelのscopeと同じ役割になります。

1
Japan.with_sikoku(:tokusima)

その他知識

これだけでinclusionのバリデーションがかかります。

スポンサーリンク
  • 2021 01.30
  • miyabisan2
  • コメントを書く
  • Ruby on Rails
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2021 02.07

    【Rails】「devise」のテストコードの書き方や用意すると良いテストケース

  2. 2020 12.26

    【Ruby on Rails】「チェックボックス」、「チェックボックスのバリデーション」

  3. 2019 12.14

    【VSCode】Railsのデバッグ設定(Mac)

  4. 2019 11.23

    【Ruby on Rails】アプリケーションサーバ「Puma」、「Unicorn」について

  5. 2020 09.16

    【Ruby on Rails】ビューヘルパー(エスケープ関連、タグ関連など)

  6. 2020 11.22

    【Ruby on Rails】「画面パラメータの渡し方」の種類

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【JavaScript】「ESLint」、プラグイン、…

【Ruby】JSONを処理する、ファイル、ディレクトリ…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー