【问题标题】:How to get validation error keys in Sequel?如何在 Sequel 中获取验证错误键?
【发布时间】:2019-10-01 14:51:53
【问题描述】:

有一个带有 Sequel 而不是 ActiveRecord 的 rails 应用程序。

在使用无效参数验证记录后,我得到了这个:

message = Message.new(some_bad_params)
message.errors
=> {
    :subject=>["is not present", "is too short or too long"],
    :notifications=>["is not present"]
   }

在这种情况下,在 API 响应中,我需要以某种方式发送此记录的错误键。

不是错误消息,因为 API 客户端是另一个具有不同语言和本地化的 Rails 应用程序。

在 ActiveRecord 中,只需像 record.errors.details 一样调用 "details" method 并接收 keys

但在续集中是行不通的。因为没有实现=)

您能否建议如何获取验证错误消息的密钥的最佳方法?

我检查了validation_helpers.rb Sequel 的插件,但只有一个关于重新定义错误消息的建议。但是错误键呢?

【问题讨论】:

  • "是否有一些 gem 已经解决了这个问题?"请查看“How to Ask”和链接页面和“mcve。我们不能推荐站外资源。相反,您必须进行研究并找到适合您使用的东西,然后尝试,然后,如果您遇到问题,请针对您遇到的问题提出具体问题。目前您的问题遥遥领先。
  • 您可能需要查看 Sequel IRC 或小组论坛。作者和其他超级用户在那里闲逛。有关详细信息,请参阅“Resources”。

标签: ruby-on-rails ruby validation sequel


【解决方案1】:

不确定我是否理解正确,如果您想获得钥匙,那么就是这样:message.errors.keys

message = Message.new(some_bad_params)
message.errors
# get keys
=> {
  :subject=>["is not present", "is too short or too long"],
  :notifications=>["is not present"]
}
message.errors.keys
=> [:subject, :notifications]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    • 2015-08-09
    • 2020-08-03
    • 2021-06-19
    • 2016-06-01
    • 1970-01-01
    • 2016-05-10
    相关资源
    最近更新 更多