我有一个使用应用程序范围的 slug 的应用程序(使用Slugalicious gem和 Sluggable 表),并使用以下代码路由到这些 slug:
#Slugs
begin
Slug.all.each do |s|
begin
get "#{s.slug}" => "#{s.sluggable_type.downcase.pluralize}#show", :id => s.slug
rescue
end
end
rescue
end
我目前在使用以下代码更新 slugs 模型时更新路线:
after_save :update_routes
def update_routes
Rails.application.reload_routes!
end
这在开发中完美运行:
我遇到的问题是,如果我更新或创建新的 slug,Heroku 不会更新以适应它。它在开发中有效,并且(令人困惑),如果我在 Heroku 上执行“heroku run rake routes”,它就有效。但是,如果我尝试浏览到新 URL,该应用程序只会显示 404。如果我重新部署应用程序,所有路线都可以工作,这让我相信这与更新应用程序范围内的路线有关
这个问题说这与在 Heroku 上运行多个进程有关,但我还没有找到这个。
有任何想法吗?提前谢谢了