gpt4 book ai didi

ruby-on-rails - Rails.application.routes.url_helpers 使 Heroku 应用程序崩溃

转载 作者:太空宇宙 更新时间:2023-11-03 15:59:42 24 4
gpt4 key购买 nike

我正在构建一个 Serializer for Collection+Json ,我正在编写一个 API 作为示例。我在使用 Rails.application.routes.url_helpers 时遇到问题在 Heroku 上部署的应用程序上。

我在一个序列化器中使用它:

Rails.application.routes.url_helpers.bills_url

在开发中,一切正常。但是,在 Heroku 上,这会引发错误:

undefined method 'bills_url' for #<Module:0x007f3a1eab8d58> (NoMethodError) .

如果我转储 Rails.application.routes.url_helpers.methods , 没有 _url_path列出方法。但是,如果我在控制台中运行相同的代码,它们是:

heroku run rails c --app myapp
> Rails.application.routes.url_helpers.methods
> # => :bills_url is present

这很奇怪。有什么线索吗? Heroku 是否制作 url_helpers无法使用?我完全迷路了。我用谷歌搜索了很多,但一无所获。

这是 bug report对于完整的跟踪。

谢谢。

最佳答案

Craig 的回答是正确的。所以,因为在 config/environments/production.rb 我们有

config.eager_load = true

我们还需要添加以下内容:

config.before_eager_load do
Rails.application.reload_routes!
end

现在,在代码的任何位置,您都应该能够使用 Rails.application.routes.url_helpers.*_pathRails.application.routes.url_helpers.*_url helper 。

就我而言,我曾尝试使用助手来解决问题,并且遇到了与您相同的问题。这对我来说就像生产中的 heroku 的魅力一样……当然我花了太长时间才弄明白! ;)

关于ruby-on-rails - Rails.application.routes.url_helpers 使 Heroku 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28135924/

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