Порядок маршрута Типус - PullRequest
       19

Порядок маршрута Типус

3 голосов
/ 15 февраля 2011

Раньше вы могли загружать маршруты Typus именно там, где они вам нужны, помещая

  Typus::Routes.draw(map)

в соответствующей точке в вашем файле rout.rb. Кажется, что это больше не поддерживается, и они всегда загружаются после всех маршрутов приложения. Это вызывает проблемы с маршрутами захвата, которые должны быть определены последними. Кто-нибудь знает, как теперь контролировать порядок загрузки для typus? Есть ли способ определить их до какого-либо из маршрутов приложения, а не после? Спасибо!

Ответы [ 2 ]

3 голосов
/ 25 февраля 2011

Я справился с этим, оставив свои универсальные маршруты в конце моих маршрутов приложений. НО, исключая его из соответствия для URL-адресов Typus:

# A catch all route
match '*path' => 'content#show', :constraints => lambda{|request|
  !request.path.starts_with?("/admin") # excluded if typus will be taking it...
}

Это может или может работать сейчас для вас ...

0 голосов
/ 16 февраля 2011

Я ищу тот же ответ.

В настоящий момент я прибегаю к копированию содержимого из config / rout.rb для typus и помещаю его в мой файл rout.rb до общего маршрута.

Это ужасное хакерское решение, но оно решает мою непосредственную проблему.

Пример:

  # TODO: KLUDGE: MANUALLY BRING THE TYPUS ROUTES IN
  #       Typus used to provide :
  #           Typus::Routes.draw(map)
  #       But that is no longer the case.
  scope "admin", :module => :admin, :as => "admin" do

    match "/" => "dashboard#show", :as => "dashboard"
    match "user_guide" => "base#user_guide"

    if Typus.authentication == :session
      resource :session, :only => [:new, :create, :destroy], :controller => :session
      resources :account, :only => [:new, :create, :show, :forgot_password] do
        collection do
          get :forgot_password
          post :send_password
        end
      end
    end

    Typus.models.map { |i| i.to_resource }.each do |resource|
      match "#{resource}(/:action(/:id(.:format)))", :controller => resource
    end

    Typus.resources.map { |i| i.underscore }.each do |resource|
      match "#{resource}(/:action(/:id(.:format)))", :controller => resource
    end
  end
  # END KLUDGE

  # Catch all to the state page handler
  match '/:page' => 'pages#show', :as => 'page'
...