更改Rails活动记录列名称的错误消息

时间:2015-09-11 17:52:56

标签: ruby-on-rails

我创建了以下页面

Rails model - insert a record - Ruby way

我的问题是,错误消息不是用户友好的。 它说" Cname不能为空白" cname是列名。而不是cname我想显示"列名不能 空白" 我怎么做 ?希望很清楚。

正如dimakura建议

class Contactu < ActiveRecord::Base
    validates :cname, presence: { message: 'Column name cannot be blank'}
end

Cname Column name cannot be blank
Cname can't be blank

。 在视图中

 @contact_us.errors.messages.values.each do |error| %>
    <li><b><%= error %></b></li>
  <% end %>

。 现在修好了。非常感谢。

感谢Guilherme Moretti。真的很感谢你的帮助:)

2 个答案:

答案 0 :(得分:1)

像这样改变:

class Contactu < ActiveRecord::Base
  validate :cname, presence: { message: 'user-friendly message' }
  validate :cdetails, presence: true
end

为了隐藏字段名称,还可以使用以下代码显示错误消息:

model.errors.full_messages.join('<br>')

答案 1 :(得分:1)

rails中的错误使用I18n文本生成消息。您可以在config/locales/en.yml

中设置属性的名称
en:
  activerecord:
    models:
      contact: contactu 
      attributes:
      contact:
        cname: "Column name"

只需更改为您想要的模型和属性的名称。

您可以在此处阅读有关rails中翻译的更多信息:http://guides.rubyonrails.org/i18n.html