2012-01-04 2 views
2

questionrailscast 63을 사용하여 articles/article_permalink로 라우팅 된 내 기사가 있습니다.모델 이름이없는 라우팅

URL에 모델 이름없이 액세스 할 수 있기를 바랍니다. my-domain.com/article_permalink가 직접 기사로 연결됩니다. 나는 단지 쇼 액션에서 이런 일이 일어나기를 바랄뿐입니다. 이것이 가능한가?

답변

2

나는 (routes.rb에서)

match '/:id' => 'articles#show', :via => 'get' 

(마지막으로 할 필요가 ... 당신이 뭔가 같은 필요하다고 생각하거나,

article_path (...) 도우미를 변경하려면 "as"가 도움이 될 수 있습니다. http://guides.rubyonrails.org/routing.html#overriding-the-named-helpers

또는 특정 경로에 도우미를 추가 할 수 있습니다.

+0

그 덕분에 곧바로 작동합니다. "as"는 새 사진이나 이미지를 사진으로 다시 라우팅하는 것 같습니다. 모델 이름을 완전히 잃어 버릴 때 어떻게 사용하는지 알 수 없습니다. 기사/퍼머 링크가 아니라 퍼머 링크를 보여줄 수있는 링크를 만드는 방법에 대한 제안 사항이 있으십니까? – Edward

+0

article_path 도우미를 추가 할 수 있습니다 ... 나는 그 URL을 생성하기 위해 호출되는 것 같아요. 나는 그것을 조사 할 것이다 : 옵션으로, 나는 여전히 그것이 네가 원하는 것을 할 것이라고 생각하지만, 나는 긍정적이지 않다. 그리고 다른 기사 경로 (업데이트, 삭제 등)를 방해하지 않는지 확인하십시오. – samsm

0

질문을 이해한다면 목록에서 기사를 선택하면 동적 인 "articles/article_permalink"경로에 연결된 모델을 원하십니까?

URL 끝에 쿼리 ​​문자열로 모델 ID를 추가 하시겠습니까? 더 복잡한 접근법은 모델 ID를 숨겨진 입력 필드로 사용하여 링크 POST를하는 것입니다. 컨트롤러가 가져 오기/게시를 통해 액세스했는지 여부를 판단하고 그에 따라 처리 할 수는 있지만 올바르게 느끼지는 못합니다.

"articles/article_permalink"에 대한 요청에 따라 컨트롤러 작업이 시작될 때 가져올 모델을 알고 있어야합니다. HTTP가 무 상태 인 상태에서 무언가가 전달되어야합니다. AJAX 호출 하나를 실행하고 세션 var을 설정 한 다음 GET을 실행하는 JavaScript를 작성하고 JavaScript를 작성할 수 있습니다. 내가 질문을 이해 바랍니다

...

+0

[게시물에 서명 또는 태그 라인을 사용하지 마십시오.] (http://stackoverflow.com/faq#signatures). – meagar

관련 문제