我在模型中有一个方法是检查一个是否是可疑附件之前进行上传,万一,如果他的结束。蝙蝠随着。可执行程序 , 。 Src或。 Cmd。
如果他的文件可疑,我想显示一条消息。 我是葡萄牙语,所以我使用了一个翻译文件。
方法是:
def suspicious_attachment
if ends_with? '.bat', '.com', '.exe', '.src', '.cmd'
errors.add(:attachment_file_name, I18n.t('errors.messages.suspicious_attachment', :value => attachment.path[-4..-1]))
errors.add_to_base(I18n.t('errors.messages.suspicious_attachment', :value => attachment.path[-4..-1]))
errors.add(:attachment_file_name)
end
end
返回:
不允许上传附件附件文件名。同 附件附件文件名无效 不允许上传附件库。与
我不想显示那些词:“附件附件文件名”和“附件库”。
我不明白为什么会出现这些词。
抱歉我的英文。
由于
答案 0 :(得分:3)
显示这些额外字符串是因为您在属性上添加了错误消息,而不是基础:
errors.add(:base, "some custom error message")
将显示如下消息:
“一些自定义错误消息”
而这
errors.add(:attribute, "other message")
将显示如下消息:
“属性”其他消息“
在您的情况下,使用:base添加错误:
def suspitious_attachment
if ends_with? '.bat', '.com', '.exe', '.src', '.cmd'
errors.add(:base, I18n.t('errors.messages.suspitious_attachment', :value => attachment.path[-4..-1]))
end
end
或者,如果您要使用以下消息翻译属性:
activerecords:
attributes:
your_model_name:
attachment_file_name: "File"
并使用它来添加相应的消息:
def suspitious_attachment
if ends_with? '.bat', '.com', '.exe', '.src', '.cmd'
errors.add(:attachment_file_name, I18n.t('errors.messages.suspitious_attachment', :value => attachment.path[-4..-1]))
end
end
哪个应该显示如下错误:
不允许上传“文件”