我正在使用语言环境来配置来自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相关的东西,所以也许翻译不是状态码的合适位置(如果你使用另一种人类口语,它不会改变(