Ruby-код может помочь вам создать нужное текстовое поле, но он не будет отслеживать, как его использует пользователь - по крайней мере, напрямую. Это работа браузера и JavaScript, который вы пишете, чтобы перехватывать события браузера. И да, вы можете отлавливать каждое нажатие клавиши и отправлять результат обратно на ваш сервер с помощью AJAX, чтобы вы могли обработать его в ruby, но зачем вам это делать?
То, что вам, вероятно, нужно, - это помощник ruby, который может сгенерировать некоторый html, чтобы сообщить браузеру ограничить ввод текстового поля определенным числом.
Что-то вроде этого, возможно:
<%= text_box 'some_model', 'some_attribute' , :maxlength=>"255" %>
Для text_area что-то вроде этого:
<%= text_area 'some_model', 'some_attribute',
:onchange => "if (this.value.length > 255){ this.value = this.value.substr(0,255); }" %>
Или, что еще лучше, поместите этот javascript в вспомогательный файл .js и добавьте его, используя jQuery или тому подобное.
ОБНОВЛЕНО
Чтобы проверить длину содержимого, используя RSpec / capybara с предоставленным вами селектором xpath:
find(:xpath, "/html/body/div[4]/div[2]/div[7]/textbox").value.length.should_be 255