Когда вы проверяете формат с помощью регулярных выражений, вы должны убедиться, что вы соответствуете всей проверяемой строке. Для этого ваше регулярное выражение должно начинаться с \A
и заканчиваться \z
, которые являются якорями, отмечающими начало и конец строки.
В вашем случае:
validates :first_name,
presence: true,
length: {maximum: 25},
format: {with: /\A[-0-9A-Za-z]\z'/}
message: "Custom message"
при условии, что вы принимаете цифры, маленькие и большие буквы и знак минус.
Вторичные индексы действительно были бы полезны для многого возможного применения HBase, и я полагаю, что разработчики на самом деле смотрят на него. Контроль http://www.mail-archive.com/hbase-dev@hadoop.apache.org/msg04801.html.
Тем временем, хотя, если Ваше устройство хранения данных данных приложения может быть смоделировано как схема "звезда" (см. http://en.wikipedia.org/wiki/Star_schema) Вам могло бы понравиться к контролю решение, что Hypertable предлагает для вторичных потребностей индексного типа http://markmail.org/message/rphm4q6cbar2ycgp