自定义 ActiveModel full_messages

2023-12-11

我想从自定义验证消息中删除该属性并仅显示该消息,因此而不是

School Please Provide Your School Name

我想回来

Please Provide Your School Name

正如我的模型中所设置的

validates :school, presence: { message: 'Please Provide Your School Name' }

该消息作为 JSON 响应返回。

查看 full_messages 方法

# File activemodel/lib/active_model/errors.rb, line 348
def full_messages
  map { |attribute, message| full_message(attribute, message) }
end

我可以用以下内容覆盖它吗

# File activemodel/lib/active_model/errors.rb, line 348
def full_messages
  map { |attribute, message| full_message(message) }
end

我已经尝试过这个

module ActiveModel
  class Errors
    def full_messages
      map { |attribute, message| full_message(message) }
    end
  end
end

位于/lib/active_model/errors.rb

但是当我尝试运行我的测试(rspec)时,我收到错误

/home/richardlewis/.rvm/gems/ruby-2.2.0@lnf_api/gems/activemodel-4.2.0/lib/active_model/validations.rb:297:in `initialize': wrong number of arguments (1 for 0) (ArgumentError)

我将文件加载到我的 application.rb 中

config.autoload_paths += %W(#{config.root}/lib)

请问我该如何解决这个问题?

Thanks

EDIT

控制器

class RegistrationsController < Devise::RegistrationsController
skip_before_action :verify_authenticity_token
respond_to :json

def create
 @user = User.new(registration_params)
   if @user.valid?
     @user.save
     render json: { message: I18n.t("devise.registrations.signed_up_but_unconfirmed") }, status: 201
   else
     render json: { message: @user.errors.full_messages }, status: :unprocessable_entity
   end
end

protected
def registration_params
  json_params = ActionController::Parameters.new(JSON.parse(request.body.read))
  json_params.require(:user).permit(:username, :school, :email, :password, :password_confirmation)
 end
end

full_message期望两个参数attribute and message.

更新:避免猴子修补并编辑您的区域设置文件以使其具有以下内容:

en:
  errors:
    format: "%{message}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自定义 ActiveModel full_messages 的相关文章

随机推荐

  • IE 中的上标下划线

    由于时间有限 我的发言会很简短 所以如果没有我希望的那么详细 我深表歉意 我有一些代码 print a href Some text a
  • 从类路径目录获取资源列表

    我正在寻找一种方法来从给定的类路径目录中获取所有资源名称的列表 类似于方法List
  • Bootstrap 4 popper 未定义

    我正在尝试启动下拉菜单 每当我单击按钮时 我就会得到TypeError popper is undefined 我尝试导入捆绑包而不是bootstrap import bootstrap import bootstrap dist js b
  • 本地主机上的画架 JS 安全限制

    我正在学习 EaselJS 但遇到了这个奇怪的错误 无法从画布获取图像数据 因为画布已被跨源数据污染 easeljs 0 6 0 min js 71 未捕获 发生错误 这很可能是由于使用本地或跨域图像读取画布像素数据的安全限制 问题是 我的
  • 基于 ggplot 中百分位的颜色代码点

    我有一些非常大的文件 其中包含基因组位置 位置 和相应的群体遗传统计数据 值 我已成功绘制这些值 并希望对前 5 蓝色 和 1 红色 值进行颜色编码 我想知道在 R 中是否有一种简单的方法可以做到这一点 我已经尝试编写一个定义分位数的函数
  • PostgreSQL 上的透视行

    我有一个返回整行的查询 我需要将此结果转换到一个新表中 SELECT id no stud name group no class 1 class 2 class 3 class 4 FROM tbl stud class 这将返回以下内容
  • 通过 C# 中的反射获取“基本”数据类型,而不是奇怪的可空数据类型

    我的基本需求是从 LINQ to SQL 查询生成的匿名类型中获取数据类型 我有一段代码 比我能写的更聪明 因为我还没有真正深入研究反射 它从匿名类型返回数据类型 并且非常适合 linq2sql 属性中标记为 不可为空 的元素 因此 如果我
  • Spring Rest - 生成 Json 数据的异常[重复]

    这个问题在这里已经有答案了 我有一个值对象 我想通过 json Rest 调用公开它 我的项目中有许多其他的休息调用都工作得很好 但这个 1 由于某种原因不能 当我尝试返回该对象时 我收到一个我不知道如何解决的异常 值对象代码如下 减去访问
  • 如何将父 div 放置在其子 div 之上?

    我有一个容器 div 它有background color red 这个容器大约有 12 个孩子 最后一个孩子有background color blue 我试图将容器移到孩子的顶部background color blue 我为容器使用了
  • 如何在nodejs aws-sdk模块中设置多个aws凭证?

    我需要对 s3 SNS 等不同服务使用多个 AWS 凭证 var awsS3 require aws sdk var awsSes require aws sdk awsS3 config update region config awsR
  • 如何将 mysql 转储文件导入 Docker mysql 容器

    提前致以问候和感谢 我实际上是 docker 和 docker compose 的新手 迄今为止观看了大量视频并阅读了很多文章并进行了尝试 我有一个前端容器和一个后端容器 它们作为 Dockerfile 和 docker compose 设
  • 在 tableHeaderView 中使用自动布局

    我有一个UIView包含多行的子类UILabel 该视图使用自动布局 我想将此视图设置为tableHeaderView of a UITableView not节标题 该标题的高度将取决于标签的文本 而标签的文本又取决于设备的宽度 自动布局
  • Java 字节码签名

    作为我正在开发的编程语言的编译器的一部分 我在字节码中遇到了通用签名 我正在尝试将其解析并转换为 AST 解析算法大部分都有效 但似乎有一种特殊情况 其中这些签名的格式表现得有点奇怪 以下是其中一些案例 java util Arrays p
  • Spring MVC:即使存在所需的参数,文件上传也会出现错误请求(缺少参数)

    我有一个文件上传控制器 其方法如下所示 RequestMapping value upload method RequestMethod POST produces application json public ResponseBody
  • INDY 10 TCP 服务器 - 与非线程安全 VCL 代码结合

    VCL 不是线程安全的 因此我想在 INDY 10 TCP 中向 gui 写入信息不是一个好主意server execute 功能 如何将信息从服务器执行发送到VCL 我需要修改一个 TBitmap 里面tcpserver execute功
  • 模拟鼠标移动

    我的 UserControl 中有带有图像的 ListView 当我带来图片时 我会在从图像中移除鼠标时重新绘制图片 图片会滋养旧的 但是 当我第二次在同一张图片上绘制时 我不想重新绘制 但是当我拿走 ListView 的教堂时 navoz
  • C 中链表的问题

    我收到的提示要求使用 c 语言的程序来实现链接列表 并为用户提供在链接列表上执行不同功能的选项 需要的功能是 isempty 检查列表是否为空并返回指示是否为空的值 add 向列表尾部添加一个元素 insert 在列表中的特定索引处插入元素
  • 如何防止我的 Python 应用程序在到达代码末尾后自动关闭? [复制]

    这个问题在这里已经有答案了 我是编程新手 尤其是Python 我正在尝试制作一个将华氏温度转换为摄氏度的应用程序 但我不知道如何使该程序保持打开状态 每当它到达代码末尾时 它就会在用户看到他或她的结果之前自动关闭 我正在使用Python 2
  • 由于以下错误而失败:800704a6 尝试从 teamcity 中的文本文件读取数据时

    我正在使用 teamcity 运行一些测试用例 它成功地将数据保存在文本文件中 但是当我尝试从同一位置读取该数据时 出现以下错误 设置方法失败 System Runtime InteropServices COMException 使用 C
  • 自定义 ActiveModel full_messages

    我想从自定义验证消息中删除该属性并仅显示该消息 因此而不是 School Please Provide Your School Name 我想回来 Please Provide Your School Name 正如我的模型中所设置的 va