我有一个评论模型,我限制评论的最大长度,例如:
validates_length_of :comment, :maximum => 500
在我看来,我已经声明了输入字段:
<%= f.text_area :comment,:as => :text, :maxlength => 500 %>
输入字段的限制按预期工作,它限制为最多 500 个字符。
但是,模型限制没有按预期工作。带有换行符的 500 个字符的文本会产生验证错误。该模型将换行符计为两个字符(以及可能的其他字符)。所以
此输入将起作用,没有换行符:
abc abc abc abc....
这不会:
abc
abc
.
.
是否有一种简单的方法可以使 validates_length_of 将换行符(和其他)计为一个字符?
===结果1===
我结合了 Jon 和 Dario 的优秀答案并创建了这个:
before_validation(:on => :create) do
self.comment = comment.gsub("\r\n","\n") if self.comment
end