मैं एक टिप्पणी मॉडल जहाँ मैं की तरह एक टिप्पणी की अधिकतम लंबाई सीमित है सत्यापित करें:रेल, इनपुट क्षेत्र के maxlength
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 बनाने के लिए एक आसान तरीका है? ।
=== Result1 ===
मैं जॉन और दारियो से महान जवाब संयुक्त और इस बनाया:
before_validation(:on => :create) do
self.comment = comment.gsub("\r\n","\n") if self.comment
end