Rails / PostgreSQL:为文本添加字符限制

时间:2016-05-09 11:57:55

标签: sql ruby-on-rails postgresql text character-limit

我想为我的Ruby on 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个字符,不让用户点击客户端中的提交按钮,但当然技术精明的用户可以改变它。最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

使用rails模型验证 - validates_length_of

在rails端,您可以在application.rb文件

中添加

validates_length_of :essay, :maximum => 1000

这将确保不超出最大尺寸。还要保持javascript验证,因为它对除恶意一次以外的所有用户都有帮助。

另外,我建议您更改applications的表名。你很容易混淆