2016-05-09 2 views
0

Я хочу реализовать ограничение символов для значения данных в моей базе данных PostgreSQL для моего приложения Ruby on Rails. В настоящее время моя таблица базы данных выглядит следующим образом:Rails/PostgreSQL: добавление символьного ограничения в текст

create_table "applications", force: :cascade do |t| 
    t.string "name" 
    t.string "gender" 
    t.date  "date_of_birth" 
    t.string "gpa" 
    t.text  "essay" 
    t.datetime "created_at", null: false 
    t.datetime "updated_at", null: false 
end 

Я хочу изменить его так, «эссе» позволяет только 10000 символов. Из моего ограниченного понимания PostgreSQL текст по умолчанию неограничен, а строка - 255 символов или меньше. Я подумал о том, чтобы выполнить условие Javascript, чтобы не допустить, чтобы пользователь нажал кнопку отправки в клиенте, если текст превышает 1000 символов, но, конечно же, технический помощник может это изменить. Какой был бы оптимальный способ сделать это?

+0

Не имеет значения, но вы имели в виду 10000 или 1000? –

ответ

1

Использование рельсов для проверки модели - validates_length_of.

На рельсах конец вы можете добавить это в application.rb файле

validates_length_of :essay, :maximum => 1000

Это гарантирует, что размер максимум не exceded. Также сохраните проверку javascript, поскольку он полезен для всех пользователей, кроме вредоносного, один раз.

Также я рекомендую вам изменить имя таблицы от applications. Вы можете легко запутаться

Смежные вопросы