2017-01-05 3 views
0

私のアプリでは、他のCMSと同じように動作するcustom_pageモデルがあります。管理者/モデレータは、テキストエディタでコンテンツを編集し、スラッグを割り当てるカスタムページを作成できます。私はこれを持っている路線で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で正常に動作しますが、あなたはピューマと生産に期待するかもしれないとして一つだけありますプロセス/スレッド(私はどのように/どのように)ルートをリロードするか分からない。どのようにすべてのプロセスでルートをリロードできるか考えていますか?

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

と私のcustom_pageコントローラに:私のルートは次のようになりので、事前

答えて

0

のおかげで私は、(リロードルートはとにかくかなり解決策ではありませんでした)この問題を解決するために、ワイルドカードを使用

before_action :get_page 

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

これははるかに良い

+0

あなたのルートを宣言する順序で気をつけてください。そのワイルドカードは貪欲で、 '/'が1つしかない次のルートを飲み込むでしょう。 – max

関連する問題