Railsで配列のバリデーションを実装
カスタムバリデーションで実装する。
- validate :メソッドで実装可能
- ポイント :を忘れないように
def tag_list_tag_validation
tag_validation = tag_list #validatesの時と違って、:tag_listとしないところを注意
tag_validation.split(",")
if tag_validation.length < 1
errors.add(:tag_list, "タグを入力してください")
end
if tag_validation.length < 2
errors.add(:tag_list, "タグは2個以上入力してください")
end
if tag_validation.length >5
errors.add(:tag_list, "タグは5個までです")
end
end
個人的に
rubyのsplitメソッドでパラメータから送られてきた,区切りの文字列を配列化するにあたり、一度、パラメータを変数に入れてから、.split
としないと、配列化できないところで、ハマった。
補足
validates
と、共存可能
例
validates :tag_list,presence :true
validate :tag_list_tag_validation
def tag_list_tag_validation
tag_validation = tag_list #validatesの時と違って、:tag_listとしないところを注意
tag_validation.split(",")
if tag_validation.length < 1
errors.add(:tag_list, "タグを入力してください")
end
if tag_validation.length < 2
errors.add(:tag_list, "タグは2個以上入力してください")
end
if tag_validation.length >5
errors.add(:tag_list, "タグは5個までです")
end
end
最後に あんまりこの手の情報がなかったので、役に立てば.......
コメント
コメントを投稿