2016-11-03 4 views
1

PostgreSQLは、アクティブレコードのデフォルトに他のデータ型を追加します。
StackoverflowでPostgreSQL documentation,List of available datatypes、RailsGuidesでActive Record and PostgreSQLを参照してください。
データ型がarrayの場合は、移行時にarray: trueを追加する必要があります。たとえば、配列データ型に使用するvaildations

create_table :books do |t| 
    t.string 'title' 
    t.string 'tags', array: true 
    t.integer 'ratings', array: true 
end 

Bookモデルではど​​のような検証が使用されるべきですか?整数は、非配列データ型だった場合
私が使用します。

validates :ratings, numericality: { only_integer: true, greater_than: 0 } 

は、この検証は、ケース ratingsは、配列データ型でも正しいだろうか?
私は配列要素ではなく配列要素の検証に興味があります。

答えて

1

AFAIKこのような場合の検証は組み込まれていません。

カスタム1を書くことができます:

validate :valid_ratings 

private 

def valid_ratings 
    if everything_is_ok 
    true 
    else 
    errors.add(:ratings, 'ratings is invalid') if something_is_wrong 
    end 
end 
関連する問題