validates_length_of:description,maximum :(不工作)

时间:2014-08-06 18:05:38

标签: ruby-on-rails ruby-on-rails-4

所以,我有一个带有以下验证的剪辑模型:

  class Clip < ActiveRecord::Base

  DESCRIPTION_MAX_LENGTH = 200
  validates_length_of :description, maximum: DESCRIPTION_MAX_LENGTH

  ....
  end

然而,当编辑剪辑的描述时,我似乎得到验证错误,即使描述只有92个字符。

我做错了什么?它应该允许描述最多200个字符的长度。

修改(包含错误讯息):

Description is too long (maximum is 200 characters)"

2 个答案:

答案 0 :(得分:0)

ActiveModel :: Validations :: HelperMethods.validates_length_of是验证字符串长度的老式方法。你最好使用ActiveModel :: Validations :: ClassMethods.validates,如:

    class Clip < ActiveRecord::Base
      validates :description, length: { maximum: 200 }
    end

两种验证方法都以调用LengthValidator结束。

APIdock ActiveModel::Validations::HelperMethods.validates_length_of

顺便说一句,由于常量仅用于验证器,因此我不会为长度值设置单独的常量。

答案 1 :(得分:-2)

所以,我找到了解决方案。我使用富文本编辑器编辑描述,允许用户在实际描述中添加样式。

然而,正因为如此,这就是这个片段的描述:

当<2>被

捕获时

因此,您的描述中的样式越多,将更多字符作为html / css标签/样式添加到描述中

我必须进行验证400。