Railsでenumに設定したカラムをinteger型で取り出す方法です。
models/user.rb
enum status: [ :nonactive, :active, :archived]
[:enumで指定したカラム名]で取り出せる!
こんな感じでuserテーブルのstatusカラムをenumで指定しているとします。
enumで指定するとuser.status
でuserのstatusを文字列で取り出せるのですが、API作成の時などにintegerで取り出したい時ありますよね?
そんなときは、user[:status]
でinteger型で取り出せます。
to_iは常に0が出力される
to_i
メソッドを使うとintegerで取り出せている感じがするのですが、常に0が出力されてしまうので注意が必要です。
コンソールで試してみる
下記はコンソールで試してみた結果です!
$ rails c [1] pry(main)> @user = User.first [2] pry(main)> @user.status => "active" [3] pry(main)> @user[:status] => 1 [4] pry(main)> @user.status.to_i => 0
コメントを残す