プログラミングマガジン

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

  • ホーム
  • Ruby on Rails
  • 【Ruby on Rails】「Enumrize」について
 
 
     
  • サーバー言語  
    • Ruby
    • Rails
    • PHP
    • Laravel
  • DB
    • Oracle
    • DB設計
    • SQL
    •  
    • 技術者試験
  •  
  • インフラ  
    • Linux
    • Git
    • Docker
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • TypeScript
  •  
  • 実装  
       
    • 設計
  • 問い合わせ
  

【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. 2019 12.02

    【Ruby on Rails】ログ出力の記述法や様々な設定方法

  2. 2019 12.08

    【Ruby on Rails】マイグレーションのロールバックができないケースもある

  3. 2019 11.30

    【Ruby on Rails】ログイン機能の実装

  4. 2018 06.20

    【Ruby on Rails】レイアウトの共通デザインを定義する。

  5. 2019 12.04

    【Ruby on Rails】アセットの設定ファイル(assets.rb、config/environments)

  6. 2019 11.30

    【Ruby on Rails】パーシャルを使ったビューの共通化

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

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

返信をキャンセルする。

【JavaScript】モックサーバの作成(json-…

【Ruby】JSONを処理するには?

RETURN TOP

アーカイブ

  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年6月
  • 2019年5月
  • 2019年3月
  • 2019年1月
  • 2018年12月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月

カテゴリー

  • .NET Framework
  • Ajax
  • Android
  • Apache
  • Auth0
  • AWS
  • Babel
  • Bitbucket
  • BootStrap
  • C#
  • C++
  • CGI
  • CSS
  • C言語
  • DBスペシャリスト
  • DevOps
  • Django
  • Docker
  • Eclipse
  • Git
  • GitLab
  • Heroku
  • HTML
  • HTML5
  • Java
  • JavaScript
  • Javaサーブレット
  • Jekins
  • jQuery
  • JSP
  • JSTL
  • JUnit
  • Kubernetes
  • Laravel
  • linux
  • Mac
  • Maven
  • MySQL
  • nginx
  • Node.js
  • Nuxt.js
  • Oracle
  • PHP
  • PL/SQL
  • PostgreSQL
  • PowerShell
  • PWA
  • Python
  • React
  • Redis
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Salesforce
  • SEO
  • Slack
  • Spring Boot
  • Spring Framework
  • Spring MVC
  • SQL
  • Struts
  • Struts2
  • Sublime Text
  • Swagger
  • Tomcat
  • TypeScript
  • UML
  • Unity
  • UX
  • VB.NET
  • Visual Basic
  • VSCode
  • Vue.js
  • webpack
  • Webサービス開発
  • XD
  • XML
  • インフラ
  • オブジェクト指向
  • クラウド
  • ゲームプランニング
  • ゲーム開発
  • サーバー
  • システム開発
  • スマホアプリ開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • バージョン管理システム
  • ハードウェア
  • プログラミング全般
  • マルチメディア
  • リファクタリング
  • 人間関係
  • 会計知識
  • 体調管理
  • 副業
  • 国際化
  • 応用情報
  • 情報処理技術者試験
  • 文字コード
  • 日常生活
  • 未分類
  • 要件定義
  • 設計
RETURN TOP

Copyright ©  プログラミングマガジン | Wordpress Thema | @