[英]Reload routes with all workers in production with puma (Rails 5)
在我的應用中,我有一個custom_page模型,該模型的工作原理與其他cms一樣。 管理員/主持人可以創建一個自定義頁面,使用文本編輯器編輯內容並分配一個條目。
在自定義頁面模型中,我有以下內容:
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
它在開發環境中運行良好,但是正如您可能期望在使用puma的生產中那樣,只有一個進程/線程(我不知道哪個/方式)會重新加載路由。 你們知道我如何在所有過程中重新加載路由嗎? 提前致謝
我使用通配符解決了這個問題(無論如何,重新加載路由並不是一個不錯的解決方案),所以我的路由現在看起來像這樣:
get "/*slug", to: "custom_pages#show"
在我的custom_page控制器中:
before_action :get_page
def get_page
@page = CustomPage.friendly.find_by_slug(params[:slug])
end
這樣好多了
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.