문제

나는 레일의 새로운 것입니다. Rails 샘플 앱에서 명명 된 경로를 사용할 수 있도록 노력하고 있습니다. 다음을 수행하고 내 브라우저에서 페이지에 액세스하려고하면 조치 컨트롤러 : 예외가 타이틀과 no route matches 메시지를 얻을 수 있습니다.

config / routes.rb

SampleApp::Application.routes.draw do
# root to: 'static_pages#home' #matches '/'
  root to: 'static_pages#home'

  match '/help', to: 'static_pages#help', via: [:get, :post] (*)
  match '/about', to: 'static_pages#about', via: [:get, :post] (*)
  match '/contact', to: 'static_pages#contact', via: [:get, :post] (*)
  [...comments...]
end
.

내 컨트롤러에서 필요한 작업이 있습니다. 나는 또한 뷰를 가지고 있지만, 어느 것이 오류 메시지가 아닙니다. 정확한 오류 메시지는 다음과 같습니다.

No route matches [GET] "/static_pages/home"
.

나는 또한 root 'static_pages#home'를 대안으로 시도했다. 아직도 아무것도.

(*) via: [:get, :post]를 제거하면 브라우저가 runtimeError signy를 던졌습니다

라우터에서 match 메소드를 사용하면 안됩니다. HTTP 메소드 지정. 당신이 당신의 행동을 둘 다에 노출시키고 싶다면 GET 및 POST, via: [:get, :post] 옵션을 추가하십시오. 노출시키고 싶다면 얻을 수있는 작업, 라우터에서 get를 사용하십시오. 대신 : 일치 "컨트롤러 # 액션"DO : "컨트롤러 # 동작"

도움이 되었습니까?

해결책

루트는 localhost : 3000을 방문 할 때 경로입니다. 그래서 'localhost : 3000'을 방문하면 case에서 static_pages / home와 일치합니다.

localhost : 3000 / static_pages / home (home)가 필요하면 해당 컨트롤러로 전달되어 라우트를 정의해야합니다.

get 'static_pages/home'
.

물론 무언가가 틀리지 않는 한, 라우트를 변경 한 후에 서버를 다시 시작해야하지만 주로 문제가 해결되지 않는 한 라우트를 변경해야 할 필요가 없다고 생각하지 않습니다.

다른 팁

  1. 라우팅을 변경 한 후 서버를 다시 시작해야합니다 !!!

  2. 루트 경로가 127.0.0.1:3000/static_pages/home

  3. 를 정의 할 때 브라우저 URL 127.0.0.1:3000에서 열려고하는 것 같습니다.

    ps 나는 그것이 당신을 도울 것입니다

이 게시물이 당신을 의심하는 모든 것들을 모두 지울 것입니다. 이전에 비슷한 문제가있었습니다.

실제로 브라우저에서 URL을 선택하면 실수로

에 액세스하려고합니다

local:3000/static_pages/home

`

에 액세스하려고 시도 할 때
local:3000/home
.

그리고 다음과 같이하십시오 튜토리얼, 적절한시기에 "일치하는"이유를 이해하게됩니다. 수락하지만 시간 동안 귀하의 GET "ROUTY"를 계속해야합니다. 체재. 중요한 것은 어떤 질문을하기 전에 어떤 연구를 수행해야합니다.이 질문이 저를 포함하여 여러 명의 다른 사람들이 질문을 받아서 중복 된 실을 게시하는 것은 아닙니다.나는 모든 것이 당신에게 분명하기를 바랍니다.즐기십시오 !!!

여기에 비슷한 질문이 있습니다. https://stackoverflow.com/a/19047811/2545197

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top