Rails 4验证消息:从消息中删除“ _id”

和我
# model.rb
validates :employee_id, presence: true, uniqueness: true

当留空时,错误消息显示“雇员不能为空”,而我希望它说“雇员ID不能为空”。

我通过以下方式解决了这个问题:

# model.rb
validates :employee_id, presence: { message: " ID can't be blank" }, uniqueness: true

输出“雇员ID可以为空”。

但是,这不是IMO真正好的解决方案。我想要一些定制整个消息的方法,包括属性前缀。

有没有简单的方法可以做到这一点?

米加尔

有几种“正确”的方法可以解决此问题,但是您绝对不应该通过验证本身或定义自己的验证方法来做到这一点。

在逐个模型级别上,这由类级别human_attribute_name方法控制。

如果您希望模型的employee_id字段是_id后缀不被截断的特例,则通过覆盖来定义该特例human_attribute_name

class MyModel

  validates :employee_id, presence: true

  def self.human_attribute_name(attr, options = {})
    attr == :employee_id ? 'Employee ID' : super
  end
end

在更广泛的方面,你可以重新定义human_attribute_nameActiveRecord::Base覆盖处理的所有 _id属性,但我怀疑你想这样做。通常,Rails删除_id后缀是一件好事

第二种(可能更好)的机制是仅依靠本地化。ActiveRecord几乎可以绑定到您的区域设置YAML文件如果希望您的employee_id字段变得人性化,Employee ID而不考虑语言,则需要编辑YAML文件。

# config/locales/en.yml

en:
  activerecord:
    attributes:
      employee_id: "Employee ID"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails 4:从自定义验证器中的错误消息中删除属性名称

来自分类Dev

Rails验证错误消息删除密钥

来自分类Dev

Rails:验证ID数组

来自分类Dev

Rails 4从迁移索引中删除迁移ID

来自分类Dev

Rails 4-销毁删除与参数中不同的ID

来自分类Dev

Rails 4-销毁删除与参数中不同的ID

来自分类Dev

Ruby on Rails 4-重复的回形针验证消息

来自分类Dev

Rails 4-从错误消息中删除属性名称以关联模型

来自分类Dev

Rails 4-从错误消息中删除属性名称以关联模型

来自分类Dev

Rails-从嵌套验证错误消息中忽略模型名称

来自分类Dev

如何在更新Rails中的ruby之前验证错误消息

来自分类Dev

验证错误消息未在Rails 3中显示

来自分类Dev

从python中的SQS消息ID中删除单引号

来自分类Dev

自定义Rails验证消息(不显示属性名称)Rails 4

来自分类Dev

自定义Rails验证消息(不显示属性名称)Rails 4

来自分类Dev

ruby on rails验证不显示错误消息

来自分类Dev

Rails 在表单上显示验证消息

来自分类Dev

rails 验证错误消息不起作用

来自分类Dev

Rails中的渲染错误消息

来自分类Dev

Rails中的消息传递协会

来自分类Dev

Rails 4,Flash消息中的链接未解析为HTML

来自分类Dev

Rails 4中错误消息的嵌套属性本地化

来自分类Dev

Rails 4:区别在于验证ID或关联上的存在

来自分类Dev

Rails 4模型关联左联接验证ID

来自分类Dev

Rails,验证社交网络用户ID

来自分类Dev

在错误验证消息上获取组件ID

来自分类Dev

如何在Rails的两列中验证唯一ID?

来自分类Dev

Rails 4 I18n:在关联验证消息中使用人体模型名称

来自分类Dev

Rails 4+:在何处存储跨模型使用的自定义验证消息

Related 相关文章

热门标签

归档