TextsController가 있습니다. 각 Text는 다른 (고정 된) 유형일 수 있습니다.컨트롤러 이름 대신 동적 접두사가있는 레일스 자원 경로
"책"유형이 있다고 가정 해 보겠습니다. 나는 텍스트를 표시하기 위해 자원 경로를 만들려면, 나는 경로는 다음과 같이 할 :
/book/my-book
또 다른 유형, "수동"예를 들어, 다음 URL을 사용하여 연결되어야합니다 :
/manual/rtfm
글쎄, 나는 haveRTFM와 나는 내가이 일을해야한다고 생각하는 방법을 작동시킬 수 없습니다. 여기
내가 무엇을 시도했다입니다 : 정적 '텍스트'세그먼트가되어야하는 이유text GET /:text_type/texts/:id(.:format) texts#show
내가하지 않습니다
scope '/:text_type' do
resources :texts, only: :show
end
rake routes
path
옵션을 포함하여 시도 : 아무것도 변경되지 않습니다
scope '/:text_type', path: '' do
resources :texts, only: :show
end
, 나는 (from source)이 scope
내 첫 번째 인수가 실제로 path
에 주어진 값보다 우선하기 때문에 같아요.
저를 얻었다 유일한 경로 설정은 내가 무엇을 찾고있어 이것이다 :
scope '/:text_type' do
resources :texts, only: :show, path: ''
end
완전히에 "[범위]는 주어진 기본 옵션 경로의 집합 scope
의 목적을 물리 칠 것 ".
내 resources
호출에 대해 이전 양식 중 실제로 path
을 덮어 쓰지 않는 이유는 무엇입니까?
나에게 버그가있는 것 같습니다.
버그 리포트를 제출해야합니까, 그렇지 않으면 f * 매뉴얼로 머리를 숙이시겠습니까? ^^
글쎄, 텍스트 형식 경로 접두사는 실제로 단순히 SEO에 대한 의미 론적 사실이며, 내부적으로 텍스트 유형 간의 구현에는 차이가 없습니다. 문서화 된 * 및 * 링크에 따르면 범위는 일련의 경로에 기본 속성을 적용하는 수단입니다. 그들은 예제에서 네임 스페이스를 사용하여 실제로 모듈 내부에 중첩 된 컨트롤러로 라우팅하는 네임 스페이스 효과를 해결합니다. 나는'scope'없이 원하는 것을 얻을 수 있지만 각 경로마다 내 경로 옵션을 반복해야만합니다. 복제본'scope'은 피할 수있는 곳입니다 ... –
O.K. 나는 다른 방법으로 질문한다 : 당신은/book/my-book이나/manual/rtfm과 같은 경로를 (나는 그들이 GET 경로라고 가정) 무엇을 기대합니까? –
흠 "my-book"또는 "rtfm"slug/id로 식별되는 텍스트를 표시하고 싶습니다. –