2017-01-05 38 views
0

在我的應用程序中,我有一個custom_page模型,其工作方式與其他任何cms中的一樣。管理員/管理員可以使用文本編輯器創建一個自定義頁面來編輯內容並分配一個段落。
在自定義頁面模型我有這樣的:與所有Puma生產工人重新加載路線(Rails 5)

after_create do 
    Rails.application.reload_routes! 
end 

在我有這樣的路線:

CustomPage.where.not(slug: nil).all.each do |page| 
    get "/#{page.slug}", controller: "custom_pages", action: "show", id: page.id 
    end 

它工作在發展environement很好,但你可能在生產預計與PUMA只有有一進程/線程(我不知道哪個/如何)重新加載路由。你們有什麼想法我可以在所有進程中重新加載路線嗎?由於事先

回答

0

我用通配符來解決這個問題(重裝路線不是一個漂亮的解決方案是這樣),所以我的路線看現在這個樣子:

get "/*slug", to: "custom_pages#show" 

和我custom_page控制器:

before_action :get_page 

def get_page 
    @page = CustomPage.friendly.find_by_slug(params[:slug]) 
end 

這好多了

+0

只要注意您聲明路線的順序。這個通配符是貪婪的,只用一個'/'就會吞下任何後續路由。 – max

相關問題