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

时间:2018-05-26 16:31:14

标签: ruby activerecord sinatra

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

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

ActiveRecord

这就是我目前在发布所有内容的@allposts = Post.limit(20)页面的get方法中所拥有的内容。 20 =显示的帖子数量。

我还有一个/current页面,用户可以在其中发布新内容。

1 个答案:

答案 0 :(得分:0)

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

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

<input class="ip-input" id="ip" maxlength="15" name="ip" size="20" type="text" value="0.0.0.0" />

通过更改maxlength属性。示例来自here

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

validates :attribute_you_want_to_limit, length: { maximum: 50 }

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

3.在架构中设置限制:

t.string :your_attribute, :limit => 20

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

我推荐第二个选项。

您也可以通过几种不同的方式使用Javascript,here's如何解释。