Максимальная длина в текстовом поле в Ruby on Rails

Я попробовал применить :maxlenght = > 40 на textarea в моей форме. Но это не сработало. Можем ли мы иметь ограничение длины на текстовом поле?

Код для текстовой области

<%= f.text_area :data,
                :rows => 2,
                :cols => 60 ,
                :maxlength => 140,
                :autocomplete => :off,
                :class => "textareabytes" %>

Ответы

Ответ 1

Как и Rahul, нет атрибута maxlength для textarea в HTML. Только text input имеют это.

То, что вам нужно запомнить, заключается в том, что функция RoR text_area (и все функции RoR-HTML-генератора) принимает любые аргументы, которые вы им дадите. Если они не распознают параметр, то он просто преобразует его в HTML.

<%=f.text_area :data, :hellothere => "hello to you too"%>

Выведет этот HTML-код:

<textarea name="data" hellothere="hello to you too"></textarea>

Я знаю, что это трудно запомнить, но Ruby on Rails - это не волшебство, а просто для вас многое. Трюк заключается в том, чтобы знать, как он их делает, поэтому вы можете понять, почему они работают, и как их исправлять, когда они этого не делают!

Ответ 2

Может ли это быть опечаткой?

": maxlenght = > 40" в вашем сообщении - misspelt.

EDIT:

Я не читал ваш пост внимательно. Я думаю, что нет атрибута maxlength для textarea в HTML. Вам придется обрабатывать его в JavaScript. В " MaxLength в текстовой области есть дополнительная информация.

Ответ 3

Не совсем то, что вы, конечно, но, вы всегда можете поставить a:

validates_length_of :data, max: 40

на вашей модели. Конечно, не остановит размер текстовой области:)

Ответ 4

Вы можете использовать атрибут maxlength. Это новое для тега в HTML5. Это должно работать в наше время.