我在我的Rails应用程序中使用Devise,我想知道为什么在我的错误消息中隐藏所有模型名称:Source code on Github
有没有办法改写这个?
例如,在德语中,名词以大写字母开头,例如“Benutzer”是正确的,但“benutzer”是错误的。
我在devise.de.yml
:
de:
activerecord:
models:
user: "Benutzer"
但是,Devise仍以小写字母呈现Benutzer
:
Konnte benutzer nicht speichern
这是错的!
我该如何解决这个问题?
感谢您的帮助......
答案 0 :(得分:2)
使用以下内容添加文件app/helpers/devise_helper.rb
:
module DeviseHelper
def devise_error_messages!
return "" if resource.errors.empty?
messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
sentence = I18n.t("errors.messages.not_saved",
:count => resource.errors.count,
:resource => resource.class.model_name.human)
html = <<-HTML
<div id="error_explanation">
<h2>#{sentence}</h2>
<ul>#{messages}</ul>
</div>
HTML
html.html_safe
end
end
在我编辑之前, :resource
被迫倒闭:
resource.class.model_name.human.downcase
来自https://github.com/plataformatec/devise/blob/master/app/helpers/devise_helper.rb
的来源答案 1 :(得分:0)
我认为你必须在帮助器中覆盖设计方法devise_error_messages!
并将你的逻辑放在那里(如果你想要除了德语语言环境以外的其他语言环境,则删除小写或创建每个语言环境的案例)。