Rails 4验证中的自定义模型名称

时间:2016-12-20 14:32:56

标签: ruby-on-rails-4 rails-activerecord

我有一个看起来像这样的课程:

class OrganicBipedalLifeform < ActiveRecord::Base
  # Has the field 'name'

  validate :presence_of_name

  private

  def presence_of_name
    errors.add(:base, "name can't be blank") unless name.present?
  end
end

我希望验证错误消息使用排除(或修改)模型名称的自定义字符串,例如&#39; Human / Vulcan名称不能为空白&#39;。

如果我希望这是此模型上验证错误的默认消息,是否有更好的方法,而不是更改每个视图中可能显示验证错误的闪存详细信息?即通过改变模型本身的某些东西?

如果在其他地方得到回答,请道歉。我发现了很多关于自定义字段名称的帖子,但没有关于修改模型本身名称的帖子。

ETA:@TomDunning @Dan,我认为我错误地识别了问题的根源(或者至少没有让它具体到足够具体),所以我创建了一个新线程来询问我希望什么是更好的问题。

2 个答案:

答案 0 :(得分:0)

我认为您可以使用:baseself.class_name或类似的类方法替换self.class.table_name

答案 1 :(得分:-1)

这是糟糕的设计,只需使用:

validate :name, presence: true

&#34;名称不能为空白&#34;无论如何都是默认错误。

如果您想稍后提取这些内容,请拨打my_record.errors或类似内容。

有关自定义错误消息

validate :name, presence: { message: 'must not be blank' }