Rails 3更改错误消息

我的数据库字段:b_name为空时出现错误消息。 但是, b_name代表商业名称,我已经让标签说明了这一点。 但是,当我收到错误消息时,它说B name不能为空。 有什么方法可以改变它,所以当我得到错误时,它说Business Name can't be blank而不是b_name cant be blank吗?

是的它实际上非常简单。

你应该有一个名为config / locales / en.yml的文件,如果不是简单的创建一个。 在那里,您可以添加自己的自定义名称。

 en: activerecord: models: order: "Order" attributes: order: b_name: "Business Name" 

那将取代你的b_name为“商业名称”

app / models / order.rb中的订单模型应如下所示:

 class Order < ActiveRecord::Base validates :b_name, :presence => true . . . 

如果有效,请告诉我:)

这是我的应用程序工作正常的截图。 这是我的应用程序工作的屏幕截图

尝试使用:messagevalidation选项,这对所有validation方法都是通用的。

我的猜测是你的模型中有这样的东西

validates_presence_of :b_name

如果要在此validation失败时更改打印的消息,可以使用:message选项

validates_presence_of :b_name, :message => 'some other message'遗憾的是,它仍会打印字段名称。 消息将是’B命名其他消息’

为了解决这个问题,请看其他问题。

使用Railsvalidation助手:消息,但希望它没有在消息中列出列名

从这篇文章中最简单的方法是添加一个像这样的human_attribute_name方法,

 class User < ActiveRecord::Base HUMANIZED_ATTRIBUTES = { :b_name => "Business Name" } def self.human_attribute_name(attr) HUMANIZED_ATTRIBUTES[attr.to_sym] || super end end