2010-06-30 3 views
0

특정 레일 앱의 관리 영역을 작성 했으므로 이제 웹 사이트 내에서 자체 섹션으로 설정할 준비가되었습니다.레일 2 네임 스페이스와 얕은 루트 문제

따라서 내가 덜 일반적인 뭔가를하고 싶었 경로 자체 내에서/admin으로 그것을 가지고 싶지 않았다 관리/그러나

될 것입니다, 그래서 전후에 하이픈의 몇 가지를 추가 그것.

따라서 경로는 /admin-/이며 네임 스페이스는 Admin입니다.

사용하여이 설정 한 후 : path_prefix => "/ -admin-", 나는 다음과 같은 코드 블록을 가지고 :

map.namespace "/-admin-/", :name_prefix => "", :path_prefix => "/-admin-" do |admin| 

이 레이크 경로 출력에, 대신, 모든하지만 얕은 경로에 대한 작동 출력은 다음과 같습니다 얕은 라우팅 경로는 다음과 같이 접두사 방법

new_page GET /-admin-/areas/:area_id/pages/new(.:format)       {:action=>"new", :controller=>"admin/pages"} 
edit_admin_page GET /admin/pages/:id/edit(.:format)          {:action=>"edit", :controller=>"admin/pages"} 
admin_page GET /admin/pages/:id(.:format)           {:action=>"show", :controller=>"admin/pages"} 
PUT /admin/pages/:id(.:format)           {:action=>"update", :controller=>"admin/pages"} 
DELETE /admin/pages/:id(.:format)           {:action=>"destroy", :controller=>"admin/pages"} 
areas GET /-admin-/areas(.:format)           {:action=>"index", :controller=>"admin/areas"} 
POST /-admin-/areas(.:format)           {:action=>"create", :controller=>"admin/areas"} 
new_area GET /-admin-/areas/new(.:format)          {:action=>"new", :controller=>"admin/areas"} 

공지 사항/관리/및하지/-admin-/(부모 경로이기 때문에).

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까? 이 버그가 레일에 있습니까? 아니면 해결해야합니까? 나는 각 중첩 된 경로에 : path_prefix를 추가하려했지만 아무 것도하지 않습니까?

아이디어가 있으십니까?

답변

0

이 문제를 해결받을 수있는 방법은 없습니다 :

map.namespace :admin, :path_prefix => "-admin-" do |admin| 
    admin.resources :users 
    admin.resources :pages 
end 

샘플이 경로를 생성합니다. 레일스의 모든 버전은 얕은 것으로 설정된 경우 URL과 리소스 이름을 가장 낮은 지점으로 나눕니다. 유일한 해결 방법은 map.resources을 사용하지 않고 모든 리소스 경로를 수동으로 설정하는 것입니다.

0

/admin을 사용하지 않는 이유에 대해 확실하지 않습니다. 무명으로 보안을 설정하는 것은 실제로 보안이 아닙니다. 인증되지 않은 사용자를 차단하기 위해 authlogic과 같은 것을 사용해야합니다.

는 사용자의 관리 컨트롤러를 네임 스페이스 다음을 시도해보십시오

admin_users GET /-admin-/users(.:format) {:controller=>"admin/users", :action=>"index"} 
관련 문제