0
validates_format_of :tags, :with => /^(([^,]+),){0,3}([^,]+)$/

この検証が可能な場合、この正規表現は次のとおりです。

key1, key2, key3, key4

ただし、各キーワードのバイト数を maximum に制限し30たいので、このキーワードは正規表現で可能です:

keyword with More than 30 bytes

これは仕様リンクです:

https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_media:キーワード

このフィルターを上記の正規表現に追加するにはどうすればよいですか?

4

2 に答える 2

1

私はそれを確認していませんが、動作するはずです:

validate :length_of_tags

def length_of_tags
  _tags = self.tags.split(',').map {|x| x.strip.force_encoding('utf-8')}
  _tags.each do |tag|
    if tag.bytesize >= 30
      errors.add(:tags, "#{tag} is too long")
    end
  end
end
于 2013-04-07T11:58:42.153 に答える