我有它使用的应用范围蛞蝓(使用Slugalicious gem与Sluggable表)的应用程序,并通过使用此代码路由到这些蛞蝓:Ruby on Rails的更新Heroku的动态路由
#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
我目前更新路由时,我更新的代码段塞流模型:
after_save :update_routes
def update_routes
Rails.application.reload_routes!
end
这工作完全在开发中:
我得到的问题是,如果我更新或创建一个新的slu,,Heroku不会更新以适应它。它在开发中工作,并且(令人困惑地),如果我在Heroku上执行“heroku运行耙路”,它就会起作用。但是,如果我尝试浏览到新网址,该应用只会显示404。如果我重新部署应用程序,所有的路线工作,这导致我相信这是与应用程序范围内的更新路线有关
This question说这是关于在Heroku上运行多个进程的事情,但我还没有找到这个。
任何想法?非常感谢提前
任何原因你没有一个'/:slug'路由和一些冲突检查,以保持slu from匹配的应用程序路线? –
感谢您的提问。发生什么事是,slu are都是为了特定的内容,并考虑到我有一个单独的管理区域和slu are是由一个单一的实体创建的,我认为我可以自己保持在路线之上。说实话,我还没有经历过这个问题,所以我没有必要写一个修复:) –