2017-01-05 5 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 развития, но как можно было бы ожидать в производстве с пумы есть только один process/thread (я не знаю, что/как), который перезагружает маршруты. Вы, ребята, знаете, как я могу перезагрузить маршруты во всех процессах? спасибо заранее

ответ

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