Rails将数据库列名称添加到错误消息

时间:2018-12-28 08:53:15

标签: activerecord ruby-on-rails-5

我正在尝试显示与预定义消息不同的消息。在我的模型文件中,我添加了这一行来检查数据库中是否存在该公司。 我正在使用Rails 5.2.2

from django.forms import ModelForm, Textarea
from myapp.models import Author

class AuthorForm(ModelForm):
class Meta:
    model = Author
    fields = ('name', 'title', 'birth_date')
    widgets = {
        'name': Textarea(attrs={'cols': 80, 'rows': 20}),
    }

我得到的结果是:

  

公司税号此税号已被使用

如何删除“公司税号”?

1 个答案:

答案 0 :(得分:1)

这取决于您如何显示错误消息。

您将从下面得到正确的想法,

u = User.new

u.valid?
# => false

u.errors.messages
# {:email=>["This field is required.", "This field is required.", "This field is required."], :password=>["This field is required."]}

u.errors.full_messages
# => ["Email This field is required.", "Password This field is required."]

u.errors.messages[:email]
# => "This field is required."

如果@company.errors.messages[:tax_no]对于@company.valid?为假,则必须检查视图部分并使用tax_no