小编fin*_*lir的帖子

Rails,验证输入字段的最大长度

我有一个评论模型,我限制评论的最大长度,如:

validates_length_of :comment, :maximum => 500
Run Code Online (Sandbox Code Playgroud)

在我看来,我声明了输入字段:

<%= f.text_area :comment,:as => :text, :maxlength => 500 %>
Run Code Online (Sandbox Code Playgroud)

输入字段的限制按预期工作,它限制为最多500个字符.

但是,模型限制不能按预期工作.带有换行符的500个字符的文本会给出验证错误.该模型将换行计为两个字符(也可能是其他字符).所以

此输入将起作用,没有换行符:

 abc abc abc abc....
Run Code Online (Sandbox Code Playgroud)

这不会:

abc

abc
.
.
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以使validates_length_of将换行符(和其他符号)计为一个字符?

===结果1 ===

我结合了Jon和Dario的精彩答案并创造了这个:

before_validation(:on => :create) do
  self.comment = comment.gsub("\r\n","\n") if self.comment
end
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

9
推荐指数
2
解决办法
2593
查看次数

标签 统计

ruby-on-rails ×1