ruby - 如何限制 Sinatra/Active Record 中数据库字符串值的字符/字数?
问题描述
我的ActiveRecord
数据库中有一个列,我希望有一定的字数限制。
本质上,我创建了一个允许用户输入文本(字符串)的表单。我想限制该字符串中允许的字符数量。
@allposts = Post.limit(20)
到目前为止,这就是我在/current
发布所有内容的页面的 get 方法中所拥有的。20 = 显示的帖子数。
我还有一个/new
页面,用户将在其中发布新内容。
解决方案
您可以通过几种不同的方式限制字符数:
1.定义您创建的 HTML 字段的限制:
<input class="ip-input" id="ip" maxlength="15" name="ip" size="20" type="text" value="0.0.0.0" />
通过更改 maxlength 属性。示例取自这里。
2.在用户模型中使用 validates 选项:
validates :attribute_you_want_to_limit, length: { maximum: 50 }
您可以在此处找到有关此选项的更多信息。
3.在模式中设置限制:
t.string :your_attribute, :limit => 20
第一个选项不允许用户在字段中输入更多内容,第二个选项不允许保存对象,第三个选项不允许将属性保存到数据库中。
我推荐第二种选择。
您还可以通过几种不同的方式使用 Javascript,这里有一个很好的解释。
推荐阅读
- openshift - Openshift/minishift Nodejs 应用程序构建错误“找不到 javac”
- java - 列出远程服务器目录中的文件名
- react-native - react-native-image-picker 减少文件的大小和质量
- python - 未知 python 错误调用另一个类中的方法“无法记录错误”
- html - simple_form 嵌套 json 属性
- react-native - 无法使用 flatlist 列出数据
- javascript - 键盘交互后未立即注册鼠标单击
- java - 将文件写入 Android 8.1.0 及更高版本?
- javascript - 禁用 Angular 组件
- ios - 用于以任何出现顺序匹配具有多个单词的列中的字符串的 Coredata 谓词