7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rails 配列のバリデーション

Last updated at Posted at 2016-12-18

#Railsで配列のバリデーションを実装

カスタムバリデーションで実装する。
validate :メソッドで実装可能
ポイント :を忘れないように

XXX.rb
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

##個人的に
rubyのsplitメソッドでパラメータから送られてきた,区切りの文字列を配列化するにあたり、一度、パラメータを変数に入れてから、.splitとしないと、配列化できないところで、ハマった。

##補足

validatesと、共存可能

XX.rb
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

##最後に

あんまりこの手の情報がなかったので、役に立てば.......

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?