2013-10-18 3 views
1

나는 내 사용자의 제품 목록에 멋진 URL을 만들기 위해 레일 4에 friendly_id을 사용하고 있습니다. to_param을 재정 의하여 작동합니다. 이제 Shop 네임 스페이스에서 멋지게 작동하고 있습니다. 그러나 내 사이트의 일부분을 공개적으로 마주하고 있습니다. Admin 네임 스페이스에서는 정규 ID를 사용하고 싶지 않기 때문에 필요하지 않습니다. URL을 줄이면 더 짧아 질 것입니다.하나의 네임 스페이스에서만 친숙한 ID를 사용하는 방법

나는 이것이 쉽지 않을 것이라고 생각했지만 파기 한 후에 실제로 다소 복잡해 보였다. to_param은 모델의 일부이기 때문에 어떤 컨트롤러가 호출되는지에 대한 실제 개념이 없습니다. 그래서 내가 볼 수있는 유일한 옵션은 url_for을 재정의하여 Admin 네임 스페이스에 id을 사용합니다. 나는 그 일을하는 방법을 모르겠다. 그리고 실제로는 행동의 가장 조악한 것이면 url_for을 사용하는 것이 약간 위험한 것처럼 보이기 때문이다.

답변

1

FriendlyId5 찾기는 기본적으로 덮어 쓰이지 않습니다.

friendly_id :foo, use: :slugged # you must do MyClass.friendly.find('bar') 
# or... 
friendly_id :foo, use: [:slugged, :finders] # you can now do MyClass.find('bar') 

이 방법, 당신이 첫 번째 옵션을 사용할 수 있습니다 생각, 나는이 렌더링 뭔가를 누락하는 경우이 안된 MyClass.friendly.find('params[:id]') 또는 MyClass.find('params[:id]')

+0

, 그래서 말해 네임 스페이스의 호출에 따라 쓸데없는 대답 – nunopolonia