ruby-on-rails - Rails 6 gem client_side_validations 应用于上下文不工作的模型
问题描述
我有一个这样的模型:
class Profile < ApplicationRecord
validates :username, presence: true, on: :data_setup
end
页面在哪里:data_setup
。
安装客户端验证 gem 后,它不会工作,除非我删除上下文部分on: :data_setup
有什么办法让它工作吗?
解决方案
你对此的期望是完全错误的。模型不知道请求、控制器或模型之外的任何其他内容,除非您明确将其传入或传入全局变量。
For 验证on:
最常用于将验证限制在create
orupdate
上下文中。请注意,这与您所在的“页面”无关 - 上下文仅与模型实例是否为新记录相关联。
使用自定义上下文时,您需要通过将上下文传递给 或 来手动valid?
触发invalid?
它save
:
Profile.new(username: nil).valid? # true
Profile.new(username: nil).valid?(:data_setup) # false
推荐阅读
- javafx - Inno Setup 没有从 netbeans 创建 .exe
- firebase - Firebase 托管重写未在 Google Cloud Run 上显示 SSR 内容
- xml - 在 XSL `for-each` 循环中编辑出部分 XML 文件
- php - PDFDelegateFailed `系统找不到指定的文件。' @error/pdf.c/ReadPDFImage/801 imagick 中的错误
- javascript - 如何在 ReactJs 中为 backgroundImage 编写正确的语法?
- hibernate - hibernate 混合了vividsolutions.jts Geometry 和locationtech.jts.Geometry
- mysql - 使用完整数据库进行数据库归档
- java - 如何使用 ESAPI 清理文件?
- php - 如何在 WordPress 中为 custom_logo 添加 id 属性?
- python - Discord Bot 删除特定频道中的消息