2014-10-07 4 views
0

레일에서 정적 페이지를 라우팅하는 방법을 알아 내는데 어려움을 겪고 있습니다. PagesController이라는 컨트롤러를 생성 했으므로 oakville.html.erb 파일과 함께 pages이라는 뷰 폴더가 있습니다. 그것.레일에서 정적 페이지 라우팅

내 컨트롤러는 다음과 같습니다

class PagesController < ApplicationController 

    def oakville 
    end 

end 

내 루트 파일은 다음과 같다 :

get "oakville", :to => "pages#oakville" 

내가 localhost로 이동하여 해당 페이지로 얻을 수 있어야한다는 가정입니다 : 3000/오크 빌?

감사합니다. 감사합니다

답변

0

방법을 oakville.html.erb을 작성하고 views/pages 디렉토리에이를 넣어해야합니다 , 네비게이션 할 수있는 정적 페이지마다 해당 컨트롤러 조치가 필요합니다. 사용자 (또는 링크)가 yoursite/oakville으로 이동할 때 경로 파일은 URL의 oakville 분기에 대해 수행 할 컨트롤러 작업을 알아야합니다.

표시 한 경로에서 get "oakville", :to => "pages#oakville"을 지정하면 컨트롤러에 oakville 동작을 렌더링하도록 요청하고 있습니다. 그러나 귀하의 컨트롤러에는 아무런 행동도하지 않습니다 (oakville). 하나 추가하고 문제를 해결 :

class PagesController < ApplicationController 

    def our_mission 
    end 

    def oakville 
    end 

end 
+0

설명해 주셔서 감사합니다. 나는이 페이지에 가면 "이 웹 페이지가 리다이렉트 루프를 가지고있다"고 말하면서 모든 것을 다했습니다. –

+0

생략 한 내용이 있으면 Pages 컨트롤러 또는 더 많은 Pages 컨트롤러와 관련된 경로 파일을 더 많이 표시 할 수 있습니까? – DRSE

0

표시 한 경로와 표시 한 동작은 완전히 관련이 없습니다. 당신이 경로에 Pages 컨트롤러에 our_mission라는 작업에 http://www.example.com/oakville 같은 URL을 원하는 경우

는 경로는 다음과 같습니다

당신이 쓴 무엇
get 'oakville' => 'pages#our_mission' 

당신이 존재하는 oakville라는 액션을 기대 나타냅니다 제공하신 코드에 따르면 그렇지 않습니다.

1

네,하지만 당신은

class PagesController < ApplicationController 

    def oakville 
    end 

end 

또한 오크 빌의 컨트롤러 액션을 추가 할 필요가, 당신은 행동이라고 컨트롤러에