无论如何,要在ActiveRecord验证上添加HTTP状态代码吗



我正在使用语言环境来配置来自Railsneneneba API服务器的错误消息,想知道是否还有附加HTTP状态代码的方法?

例如:

假设我有一个型号:

电子邮件.rb

class Email < ApplicationRecord
validates_presence_of :email_address
validates :email_address, allow_blank: true, format: { with: URI::MailTo::EMAIL_REGEXP }, uniqueness: {case_sensitive: false }
end

我的配置设置如下:

en.yml

en:
activerecord:
attributes:
email:
email_address: Email address
errors:
messages:
record_invalid: "%{errors}"
# I want to do something like this
blank:
message: is required.
status_code: 422
taken:
message: is already taken.
status_code: 409

编程也可以,我只想在适用的情况下返回适当的HTTP状态代码422、409、404、401等。

提前感谢!

要想做什么就做什么,我不推荐

你需要写一些额外的代码,默认行为是422,要改变它,你可以添加一些代码,询问模型有什么错误,并相应地做出响应,或者想办法对响应422的内置rails代码进行猴子补丁。

参见相关轨道代码行25

不管怎么说,这有点代码味(你目前正在努力实现的(,模型不应该知道任何与HTTP相关的东西,所以也许翻译不是状态码的合适位置(如果你使用另一种人类口语,它不会改变(

相关内容

  • 没有找到相关文章

最新更新