ruby-on-rails - 如何在 Ruby on Rails 中编写可见字符计数验证

标签 ruby-on-rails string ruby-on-rails-3 validation

(作为此问题的后续:In Jquery AND Rails, how to get visible character count of a string?)

假设您有一个带有嵌入链接和标签的字符串,如下所示:

 This string has <a href="http://www.google.com">some links</a> inside it.

那么用户可见的字符串是:

 This string has some links inside it.

完整字符串有 73 个字符,可见字符串只有 37 个字符。

假设我现在想编写一个 Rails 验证(自定义验证)来检查字符串的可见长度。即:

 validate :string_visible_length

 def string_visible_length
      #some code that verifies the character length of a field named :field_name
 end

有什么想法可以实现这一点吗?我需要去掉 html 标签,然后检查字符长度..

最佳答案

我认为你可以使用 strip links验证中的方法。

使助手在模型文件中可用:

  include ActionView::Helpers

这是验证:

  validate :string_visible_length

private

  def string_visible_length
    visible_string = strip_links(self.column_name) # where column_name is the field you need validated
    errors.add(:base, 'Visible string is too long') if visible_string.length > 20 # 20 is whatever length you need
  end

关于ruby-on-rails - 如何在 Ruby on Rails 中编写可见字符计数验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7364269/

相关文章:

PHP:如何检查字符串的大写特定部分?

python - 正则表达式:从字符串列表创建字典

ruby - 如何从 nokogiri 对象获取标识符(例如 xpath)?

Rails 中的 Mysql 约束数据库条目

c - 使 scanf 拾取字符串中间的空格

ruby-on-rails - Rails 仅在指定的 Controller 上强制使用 ssl

ruby - 升级到 OSX 10.7.3 Lion 后修复 Postgresql

ruby-on-rails-3 - Mongo 查找器和标准

javascript - 生产中 JS 文件的 Rails 3.1 Assets 管道中的错误指纹

ruby-on-rails - 我可以使用 Windows 开发设置中的 Capistrano 部署到 Linux 服务器吗?