2016-02-12 2 views
0

Я работаю над проектом Rails, который использует весь маршрут, предназначенный главным образом для рендеринга страницы с угловым интерфейсом. Потому что этот маршрут общего доступа находится в проекте, теперь я потерял способность ударить/рельсы/информацию/маршруты, что несколько удобно.Rails catch-all route предотвращает вызовы/rails/info/routes

Вот соответствующая часть моего routes.rb:

Rails.application.routes.draw do 
    match "/delayed_job" => DelayedJobWeb, :anchor => false, via: [:get, :post] 

    namespace :api, format: false, defaults: {format: :json} do 
    ..... 
    get '*path' => 'base#not_found' 
    end 

    namespace :admin, format: false, except: [:show] do 
    ..... 
    root 'home#index' 
    end 

    devise_for :users 

    get 'styleguide' => 'styleguide#index' 
    get '*path' => 'bootstrap#index' 
    root 'bootstrap#index' 

end 
+1

Есть ли причина, по которой вы не можете использовать «рейк-маршруты» в своем терминале? –

+0

Это было моим обходным решением и обычно тем, что я бы сделал в любом случае ... Просто интересно, есть ли способ, которым другие люди обойдутся этим. –

ответ

2

Фигурного это - для тех, кто работает в этом вы можете добавить contstraint, если запрос не начинается с/рельсами:

get '*path' => 'bootstrap#index', constraints: -> (req) { !(req.fullpath =~ /^\/rails\/.*/) } 
+2

'req.fullpath.start_with? ('/ Rails')' будет быстрее (и может быть более читаемым), чем regexp. – spickermann