2017-03-22 6 views
2

モデルの列挙型をINT値に変換するにはどうすればよいですか?レコードインスタンスがあるときに、モデルの列挙型からint値を取得する方法は?

私はこれを行うにしようとしています:

class User < ActiveRecord::Base 
    enum user_type: [:member, :super] 
end 

は今、今、私は別のクエリでuser_type列挙値を使用したい、私はユーザーレコードを持っていると言う:

u = User.find_by_type(@user.user_type) 

def self.find_by_user_type(user_type) 
    User.where(user_type: user_type).take 
end 

これにはありませんuser.user_typeが「メンバー」または「スーパー」を返すため、0または1が必要です。

私の@userインスタンスからInt値を取得する方法はありますか?

(レールの4.x)

答えて

2

列挙型の整数等価取得するには、必要に応じて他のユーザーインスタンスとselfを交換

User.user_types[self.user_type] # returns integer value 

を。

関連する問題