2009-09-04 7 views
0

나는 현재 제대로 다음 URI를 생성 Permalink_fu 플러그인을 사용하고 있습니다 :URL에 컨트롤러가없는 permalink로 레일 경로를 만들려면 어떻게해야합니까?

http://localhost:3000/pages/some-permalink-to-page 
지금 내가 나를 떠나는 URI에서/페이지/부분을 드롭 할 수 있도록 내 라우팅을 구성 할

:

http://localhost:3000/some-permalink-to-page 

내가 내 설정의 하단에 다음을 추가하는 시도/routes.rb 파일 :

map.connect ':permalink', :controller => 'page', :action => 'view' 

하지만 얻을 다음과 같은 오류, 나는 N을하려고 할 때 ew URI :

uninitialized constant PageController 

의견이 있으십니까? 레일 2.2.2를 실행 중이며 아직 가장자리 레일을 시험해보기를 꺼립니다.

많은 감사,

벤 ... 경로에서

답변

0

는해야 컨트롤러 (복수) "페이지"가?

0

감사합니다. 마이크, 나는 많은 오류를 범했습니다. 이것은 내가 어떻게 작동하게했는지입니다.

map.connect ':id', :controller => 'pages', :action => 'show' 

문제는 이제 다음 어떤 나쁜 URL이 심하게 예를 실패 할 것입니다 다음 routes.rb 파일에서 페이지의 하단에 다음 경로를 추가

404 오류가 발생하지 않습니다.

def show 
    @page = Page.find_by_permalink(params[:id]) 
    if @page.nil? then 
     render :file => 'public/404.html', :status => '404' 
    else 
     respond_to do |format| 
     format.html # show.html.erb 
     format.xml { render :xml => @page } 
     end 
    end 
    end 

지금 나는 URL의 모든 변형에 대한 올바른 동작을 얻을 :

http://localhost:3000/pages/some-permalink-to-page 
http://localhost:3000/some-permalink-to-page 
and the if an invalid permalink is entered 
http://localhost:3000/no-such-permalink 
gets rendered to the default public/404.html file. 

희망

나는 행동을 보여 내 pages_controller.rb에 다음 줄을 추가하여이 고정 다른 누구에게나 도움이되고, 마이크에게 다시 한 번 감사드립니다. 컨트롤러 파라미터 컨트롤러의 단수 이름입니다 읽어야

map.connect ':permalink', :controller => 'page', :action => 'view' 

:

map.connect ':permalink', :controller => 'pages', :action => 'view' 

(가) 벤 ...

0

은 routes.rb 항목에 오타가있다 'pages'여야합니다.

관련 문제