環境はrails5.2.3です。
Rubyの惜しいところがC#等のenumにあたる列挙型がないことですが、
railsではenumがあるということで使ってみたのですが、上手く値を取り出せません。
例えばモデルを作成する自動生成されるプライマリーキー兼サロゲートキーである"id"をenumとして定義したいのですが、それにあたるリファレンスがなかったことと、それの取り出し方が上手く分かりません。
またrails5とrails4で取り出し方が異なるらしく、値の取り出しに困っております。
以下がモデルに記述したenumとそれをコントローラーで呼び出すとします。
class Status < ApplicationRecord enum id: {on_contract: 10, finished_contract: 20, on_hold: 30, cancel: 40}, _prefix: true end
class StatusController < ApplicationController def show finished_contract = Status.id[:finished_contract] end end
例えば、ハッシュになっているenumのキーfinished_contractのバリューである20を取り出したい場合以上のようにしているのですが、
You tried to define an enum named "ids" on the model "Status", but this will generate a class method "ids", which is already defined by Active Record.
というエラーが出てて上手く取り出せていないみたいです。
まずmodelに定義しているカラム名がidsと複数形で記載すべきなのかidと単数形で書くべきかがわからないのと、
モデル名.カラム名[:キー]で取り出せるのかもよくわかりません。
どうすれば20という値を取り出せるでしょうか。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/13 01:32
2019/11/13 02:06