2017-06-30 29 views
0

當使用Active Record枚舉全局化gem時,出現一個錯誤,就好像globalize不知道該枚舉存在一樣。驗證Rails使用Enum全局化Gem

class Stuff < ActiveRecord::Base 
    enum stuff_type: { one: 1, two: 2 } 
    translates :name 

    validates :name, presence: true, uniqueness { case_sensitive: false, scope: :stuff_type } 

    default_scope do 
    includes(:translations) 
    end 
end 

如果我做的:

s = Stuff.new(name: 'stuff') 
s.one! 

我得到一個錯誤,如下所示:

ActiveRecord::StatementInvalid: PG::InvalidTextRepresentation: ERROR: invalid input syntax for integer: "one"

這是因爲驗證的,因爲它看起來像Globalize的不理解枚舉。

我做錯了什麼?我應該如何做到這一點?

回答

0

解決方案是創建我自己的驗證方法!