如何限制 character/word 对 Sinatra/Active 记录中数据库字符串值的计数?

How to limit character/word count on database string value in Sinatra/Active Record?

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

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

@allposts = Post.limit(20)

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

我还有一个 /new 页面,用户将在其中 post 新内容。

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

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

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

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

2.Using 用户模型中的验证选项:

validates :attribute_you_want_to_limit, length: { maximum: 50 }

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

3.Putting 架构中的限制:

t.string :your_attribute, :limit => 20

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

我推荐第二种。

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