postgres中rails 4中字符串最大长度的正确默认值是多少?

时间:2016-01-08 14:12:05

标签: ruby-on-rails postgresql sqldatatypes

我在postgres(~9.4.0.1)上有一个rails(~4.2.3)博客平台应用程序,其中帖子的标题是一个字符串。我想让博客管理员为他们的博客指定标题的最小和最大长度,所以我有title_min_length和title_max_length属性。我想为这两个值提供灵活的默认值。 min_length当然可以是1.对于max_length,我想允许此堆栈中的字符串字段(rails + postgres)的最小保证最大长度。鉴于真正的限制是可用内存,该值应该是多少?

根据this answer on SO,Postgres没有限制。此外,根据this other answer,从rails~4开始,ActiveRecord字符串大小限制为255,并且字符串可以任意长。

鉴于此,指定为默认值的合理最大长度限制是多少?我不想通过选择太短的长度来人为地限制用户。

1 个答案:

答案 0 :(得分:1)

您可以使用MODEL.columns和MODEL.columns_hash检索表格信息。

这将为您提供可以在列中存储的字符数。

col_size = Post.columns_hash['title'].limit

但是,从第一个答案开始,您链接的大小取决于此列的定义方式,:string或:text,因此列大小为255或65536.如果您未在迁移中自行设置限制。