gpt4 book ai didi

ruby-on-rails - 警告 : already initialized constant within config/routes. rb

转载 作者:行者123 更新时间:2023-12-05 04:02:58 25 4
gpt4 key购买 nike

我在 config/routes.rb 中有以下类。当我通过 Elastic Beanstalk 使用包含启动 delayed_job 的部署后脚本的 .ebextensions 文件部署应用程序时,我收到:

...
warning: already initialized constant DistributionSlugConstraint::MATCH_REGEX
warning: previous definition of MATCH_REGEX was here
delayed_job: running [pid 14867]
...

config/routes.rb 中的类。

class DistributionSlugConstraint
MATCH_REGEX = /B[a-zA-Z1-9_]{5}/
def self.matches?(request)
request.fullpath =~ MATCH_REGEX
end
end

Rails.application.routes.draw do

constraints(DistributionSlugConstraint) do
get "/:slug" => "distributions#show", as: :distribution
end

end

最佳答案

发生此错误的原因有很多,但解决方法是不声明常量。不确定您是否在代码的其他地方使用了 DistributionSlug::MATCH_REGEX,但如果您没有使用,您可以:

class DistributionSlugConstraint
def self.matches?(request)
request.fullpath =~ /B[a-zA-Z1-9_]{5}/
end
end

如果您在代码的其他地方使用它,您可以将其设为类方法并调用它而不是常量。另一种方法可能是将其声明为 application.rb

中的配置

我在使用像 puma 这样的多线程应用程序服务器时,或者在 Sidekiq 作业中看到过这种情况。如果不了解您的基础设施,很难说更多。

关于ruby-on-rails - 警告 : already initialized constant within config/routes. rb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53916673/

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