gpt4 book ai didi

ruby-on-rails - "Error": errors. 添加不只显示 locales/xx.yml 中的消息

转载 作者:数据小太阳 更新时间:2023-10-29 08:48:47 25 4
gpt4 key购买 nike

我在模型中有一个方法是在上传之前检查是否有可疑附件,以防万一,如果他以.结尾。 bat 。和 。可执行程序 , 。来源或。命令。

如果他的文件可疑,我想显示一条消息。我是葡萄牙语,所以我使用一个翻译文件。

方法是:

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

哪个返回:

附件附件文件名不允许上传。和附件附件文件名无效附件库不允许上传。与

我不想显示那些词:“附件附件文件名”和“附件库”。

我不明白为什么会出现这些字。

对不起我的英语。

谢谢

最佳答案

显示这些额外的字符串是因为您在属性上添加了错误消息,而不是在基础上:

errors.add(:base, "some custom error message")

将显示如下消息:

"some custom error message"

鉴于此

errors.add(:attribute, "other message")

将显示如下消息:

"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

应该显示如下错误:

"File" is not allowed to upload

关于ruby-on-rails - "Error": errors. 添加不只显示 locales/xx.yml 中的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19228204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com