2

User モデルの検証をセットアップしました。私の User モデルのコードはこのようなものです。
各タグに最大長の検証を追加したい場合、これに何を追加すればよいですか?
可能であれば、これらの検証全体をコーディングするより短い方法も知りたいです。

  acts_as_taggable_on :tags
  validates_presence_of :tag_list,
                        :message => "Create at least 1 tag"
  validates_size_of     :tag_list,
                        :maximum => 4,
                        :message => '4 tags maximum'
4

2 に答える 2

2
validate :max_tag_size # HERE WITH VALIDATE - NOT VALIDATES!

def max_tag_size
  errors[:tag_list] << "4 tags maximum" if self.tag_list.split(",").count > 4
  errors[:tag_list] << "tag lenght < 10 letters " if self.tag_list.split(",").collect(&:length).max >= 10
end
于 2012-12-09T00:47:40.657 に答える
1

いろいろ試した結果、やっと解決方法がわかりました!
これにより、正常に動作しました:)

validate :max_tag_size 
def max_tag_size
 errors[:tag_list] << "2 tags maximum" if tag_list.count > 2
 self.tag_list.each do |tag|
  errors[:tag_list] << "#{tag} must be shorter than 10 characters maximum" if tag.length > 10
 end
end
于 2012-12-11T04:35:57.620 に答える