如何在Sinatra / Active Record中限制数据库字符串值的字符/字数?

我的ActiveRecord数据库中有一列我希望有一个字数限制。

基本上,我创建了一个允许用户输入文本(字符串)的表单。 我想限制该字符串中允许的字符数。

@allposts = Post.limit(20)

这是我目前在发布所有内容的/current页面的get方法中所拥有的。 20 =显示的post数量。

我还有一个/new页面,用户将发布新内容。

您可以通过几种不同的方式限制字符数:

1.定义您创建的HTML字段的限制:

  

通过更改maxlength属性。 从这里取的例子。

2.在用户模型中使用validates选项:

 validates :attribute_you_want_to_limit, length: { maximum: 50 } 

您可以在此处找到有关此选项的更多信息

3.在架构中设置限制:

 t.string :your_attribute, :limit => 20 

第一个选项不允许用户在字段中输入任何内容,第二个选项不允许保存对象,第三个选项不允许将属性保存到数据库中。

我推荐第二个选项。

您也可以通过几种不同的方式使用Javascript, 这里有一个很好的解释如何。