2

我在我的 Rails 应用程序中使用 Devise,我想知道为什么它在错误消息中将我所有的模型名称都小写:Github上的源代码

有没有办法覆盖这个?

例如,在德语中,名词以大写字母开头,例如“Benutzer”是正确的,但“benutzer”是错误的。

我有这个devise.de.yml

de:

  activerecord:
    models:
      user: "Benutzer"

但是,Devise 仍然Benutzer以小写字母呈现:

Konnte benutzer nicht speichern

这是错误的!

我怎样才能解决这个问题?

谢谢你的帮助...

4

2 回答 2

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

于 2013-04-23T15:26:38.057 回答
0

我认为您必须在devise_error_messages!帮助程序中覆盖设计的方法并将您的逻辑放在那里(如果您想要德语语言环境以外的小写字母,请删除小写字母或为每个语言环境创建案例)。

于 2013-04-23T15:31:38.300 回答