Rails/PostgreSQL: 对文本添加字符限制
Rails/PostgreSQL: Adding character limit to text
我想在 Rails 应用程序的 Ruby 的 PostgreSQL 数据库中对数据值实施字符限制。目前我的数据库 table 看起来像这样:
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
我想更改它 "essay" 只允许 10000 个字符。根据我对 PostgreSQL 的有限理解,默认情况下文本是无限的,而字符串是 255 个字符或更少。我考虑实施 Javascript 条件,如果文本超过 1,000 个字符,则不允许用户点击客户端中的提交按钮,但当然,精通技术的用户可以更改它。执行此操作的最佳方法是什么?
使用 rails 模型验证 - validates_length_of.
在 rails 端,您可以将其添加到 application.rb
文件
validates_length_of :essay, :maximum => 1000
这将确保不超过最大尺寸。还要保留 javascript 验证,因为它对除恶意用户之外的所有用户都有帮助。
另外,我建议您将 table 名称从 applications
更改。你很容易混淆
我想在 Rails 应用程序的 Ruby 的 PostgreSQL 数据库中对数据值实施字符限制。目前我的数据库 table 看起来像这样:
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
我想更改它 "essay" 只允许 10000 个字符。根据我对 PostgreSQL 的有限理解,默认情况下文本是无限的,而字符串是 255 个字符或更少。我考虑实施 Javascript 条件,如果文本超过 1,000 个字符,则不允许用户点击客户端中的提交按钮,但当然,精通技术的用户可以更改它。执行此操作的最佳方法是什么?
使用 rails 模型验证 - validates_length_of.
在 rails 端,您可以将其添加到 application.rb
文件
validates_length_of :essay, :maximum => 1000
这将确保不超过最大尺寸。还要保留 javascript 验证,因为它对除恶意用户之外的所有用户都有帮助。
另外,我建议您将 table 名称从 applications
更改。你很容易混淆