ruby-on-rails - 验证中错误格式的自定义消息
问题描述
在我的模型/user.rb 我有这个验证
validates :username, uniqueness: { case_sensitive: false },
length: { in: 3..15 },
format: { with: /\A[^\.]+\z/ },
format: { without: /\s/ }
三个问题:
- 我可以用不同的方式编写正则表达式吗?就在一行。
- 如果用户尝试注册为“Magic Mike”,则会显示“无效”。但是太笼统了。如何编辑它以写“没有白色/空格”?
- 我可以在注册期间禁止空格键吗?在铁轨上怎么做?我应该使用javascript吗?
解决方案
你只想要'没有空格'和'只有字母'对吗?
/^\w+$/
您还可以在正则表达式中包含长度要求:
/^\w{3,15}$/
您实际上不能禁止空格键。但是在 javascript 中,如果在字段中插入空格字符,则会显示错误,并且您可以从输入字段中删除空格。
如果您希望显示更多解释性消息,请使用 message: 选项:
validates :username, uniqueness: {case_sensitive: false, message: 'must be unique'}
validates :username, format: {with: /^\w{3,15}$/, message: 'must be 3-15 letters with no spaces'}
推荐阅读
- firebase - Firestore 索引用作集合和集合组。哪个更好?
- android - Android ImageView 设置选择器以编程方式不起作用
- javascript - 从 javascript 调用包中定义的 AlpineJS 函数
- javascript - 如何在 iOS 的标题上方放置 Pulll 刷新指示器?
- python - 如何在kivy中打印循环中的文本输入
- javascript - 带有十进制值的 Wordpress woocommerce 产品数量
- javascript - 客户端验证在 Asp.Net Core 中不起作用
- javascript - 当我不认为它是异步的代码时,它的行为就像它是异步的
- react-native - React Native - 键盘自动隐藏
- haproxy - 即使在浏览会话结束后,基于 Haproxy Cookie 的路由也始终重定向到同一个节点