2009-05-21 4 views
2

레일에 깨끗한 URL을 만들려고합니다. PermalinkFu를 설치 했으므로 링크를 생성 할 수 있습니다. 내가하고 싶은 것은 내 RESTful 리소스를 유지하는 것입니다. 오버로드 할 수있는 방법이 있습니까?map.resources를 레일에 오버로드하는 방법이 있습니까?

map.resources :location 

반환하는 값 : permalink 변수 대신 : id? 내가 만들 수있는 방법과 유사하게

:

map.connect 'location/:permalink' :controller => 'location', :action => 'show' 

측면 참고 : 영구 링크를 처리하기위한 가장 좋은 방법은 무엇, 그들은 단지 다음보기/show 액션을 표시 사용하는 데 사용한다 : 대한 ID를 편집/파괴/etc? 그리고 나는 심지어 컨트롤러를 id : permalink 대신 변수 이름으로 사용하는 것에 관심을 가져야 하는가?

답변

2

그것은이 문제를 해결하는 나의 방법 permalink에 대한 규칙을 추가 할 필요가 없습니다.

는이

@location = Location.find_by_permalink params[:id] 

가 작동 희망 같은 컨트롤러에서 찾을 수 있습니다.

+0

이것은 정확히 사용자가 수행하는 작업입니다. –

+1

맞아, 위의 내용이 내가 지금 가지고 있고 변경하려고하는 것입니다. 누구에게도 별거 아닌가요? params [: permalink]를 실제로 전달할 때 params [: id] 변수를 사용 하시겠습니까? 내가 원하는 것은 map.resources : location은 params [: permalink] 대신 params [: id]를 채 웁니다. –

+0

개인적으로 매우 사소한 문제라고 생각합니다. –

0

Location 모델에서 to_param 메서드를 재정의 할 수없는 이유가 있습니까? Ryan Bates는 Railscast that explains how to do this입니다.

순수 주의자가되고 싶다면 모든 행동에 퍼머 링크를 사용해야하지만 의심 할 여지없이 편집 및 삭제 작업에 숫자 ID를 사용하는 것이 더 편리합니다. HTML을보고 레코드의 실제 기본 키를 볼 수있는 사람이 귀찮게하는 경우에 따라 다릅니다. 보안 구멍이라고 생각할 수도 있습니다.

+0

위의 주석을 참조하십시오. –

관련 문제