Ruby on rails 自定义验证消息(在模型文件中),其中包含不起作用的路径

Ruby on rails 自定义验证消息(在模型文件中),其中包含不起作用的路径,ruby-on-rails,ruby,ruby-on-rails-4,heroku,model,Ruby On Rails,Ruby,Ruby On Rails 4,Heroku,Model,在用户模型文件中,我包括: validates :email, uniqueness: { case_sensitive: false, message: "You can reset your password " + link_to("here", new_password_reset_path) } 在开发服务器上加载页面时,会生成错误: undefined local variable or method `new_password_reset_path' for #<Clas

在用户模型文件中,我包括:

validates :email,  uniqueness: { case_sensitive: false, message: "You can reset your password " + link_to("here", new_password_reset_path) }
在开发服务器上加载页面时,会生成错误:

undefined local variable or method `new_password_reset_path' for #<Class:0x007f4d36863460>
是否无法引用模型文件中的路径?如果没有,我如何在这里实现预期目标


更新:起初,模型文件中包含
Rails.application.routes.url\u helpers的解决方案似乎起到了作用。事实上,在开发过程中,他们发挥了作用。然而,事实证明,它们在生产中不起作用。他们破坏了Heroku的网站。post似乎也引用了类似的内容,似乎表明您不应该在模型文件中使用
Rails.application.routes.url\u helpers
。推到Heroku后,当我试图打开网站时,它会显示“应用程序错误”。所以我查了heroku的日志发现:

app[web.1]: [3] ! Unable to load application: NoMethodError: undefined method `new_password_reset_path' for #<Module:0x007f7392350b08>
app[web.1]: /app/app/models/user.rb:32:in `<class:User>': undefined method `new_password_reset_path' for #<Module:0x007f7392350b08> (NoMethodError)
app[web.1]:[3]!无法加载应用程序:NoMethodError:未定义的方法“新密码重置路径”#
app[web.1]:/app/app/models/user.rb:32:in`':未定义的方法“新密码重置路径”(NoMethodError)

是否有其他解决方案也适用于Heroku/生产中?也就是说,解决方案是如何在模型文件中的自定义验证消息中包含url/路径。

您可以尝试此方法。我希望这会有所帮助

config/locales/en.yml

en:
  activerecord:
    errors:
      messages:
        email: 'You can reset your password <a href="%{link}">here</a>.'

我想您必须在模型中包含url\u helper
classmyclass
我在模型文件的开头添加了
include Rails.application.routes.url\u helpers
。但我仍然收到了相同的错误消息(也是在重新启动服务器之后)。您使用的是哪个rails版本?我使用的是rails 4.2.1,它确实消除了错误消息。只有链接显示为纯文本:“您可以重置密码。”因此它不是一个工作链接。@Nick您可以在视图文件的错误消息中附加
.html\u safe
,以显示未替换的文本/链接。是的,将
.html\u safe
添加到共享错误消息视图中,并使用
新建密码\u重置路径
(不是模型文件中出现其他错误的
url
)成功了!另一个不需要更改en.yml,也不需要
的实现包括模型文件中的Rails.application.routes.url\u helpers
,将是:
唯一性:{消息:“您可以重置密码。”.html\u safe}
事实证明,模型文件中包含的
Rails.application.routes.url\u helpers
不起作用。它在开发中起作用,但会使Heroku崩溃。请参阅添加到原始帖子中的更新。
en:
  activerecord:
    errors:
      messages:
        email: 'You can reset your password <a href="%{link}">here</a>.'
validates :email,  uniqueness: { case_sensitive: false, message: I18n.t("activerecord.errors.messages.email", link: Rails.application.routes.url_helpers.new_password_reset_url) }