2013-11-01 2 views
0

나는이 사용자 정의 탭을 멋지게 2.1에 짓고 있으며이 데스 오버라이드는 잘 작동하지만이 탭에 이미있는 탭을 클릭하면 url/admin/admin/places로 이동하십시오. 그래서 항상/admin/places로 가야합니다.데비안 재주문에 Spree 사용자 정의 관리 탭 도우미 URL

발견 : https://codeclimate.com/github/spree/spree/Spree::Admin::NavigationHelper이 탭은 첫 번째 인수를 취해서 admin_places_path 경로를 지정합니다. '관리자/장소'와 URL의 PARAM하지만 같은 결과를 얻었다 지금 여기 codeclimate에 저를지도하고 탭 구현을 찾고 있었다 :

:insert_after => "[data-hook='admin_tabs']", 
:text   => "<%= tab :places, :icon => 'icon-th-large'%>" 

는 내가 보통을 시도했다. 누구든지 이것을 피하는 방법을 알고 있습니까?

답변

6

그건 내가 해결 방법은 다음과 같습니다

:text => "<%= tab :places, :icon => 'icon-th-large', url: main_app.admin_places_path %>" 

나는 장소에 대한 내 경로가 마구에없는 내 응용 프로그램의 네임 스페이스 내에서 사실을 발견 내 대답을 검색.

namespace :admin do 
    # Directs /admin/products/* to Admin::ProductsController 
    # (app/controllers/admin/products_controller.rb) 
    resources :places 
end 

그래서 경로에 액세스하려면 "main_app"를 넣어야했습니다. 경로가 타겟팅되기 전에 여기를 참조하십시오 : Adding Routes to Rails' Spree E-Commerce

URL 매개 변수가 대상으로 설정되어 있고 "main_app"을 삽입하는 데 사용할 수있는 코덱스 코드를 확인했습니다. 경로 앞에 있고 지금 일하고있다.

편집 :

그것을 할 수있는 더 좋은 방법을 찾아 냈다. 내 모든 폴더 (컨트롤러와 뷰) 컨트롤러/뷰> 마구> 관리자에 컨트롤러/뷰> 지역 정보> 지역 제거

이동 된

경로

Spree::Core::Engine.routes.prepend do 
    namespace :admin do 
    # Directs /admin/products/* to Admin::ProductsController 
    # (app/controllers/admin/products_controller.rb) 
    resources :places 
    end 
end 

"을 my_app." 이제는 더 효과적이고 쉽게 작동합니다.