2010-12-17 4 views
5

명명 된 경로 자체에 접두사가 첨부 된 링크를 생성하려고합니다. 이 같은 뭔가 "/ 구/레시피"의 경로를 표시 :Ruby on Rails : 이름 붙여진 경로 앞에 어떻게 붙이십니까?

recipes_path(:prefix => "old/") # the correct way should show "/old/recipes" 

나는 routes.rb 파일을 터치 만 부착 접두사로 명명 된 경로를 수정하지 않습니다. 그게 가능하고 어떻게 제대로 할 수 있니?

편집 : 레일스 3을 사용하고 있습니다. 선택적 접두사를 추가하는 이유는 일반 recipes_path도 사용하고 싶습니다. 그래서 "/ recipes"와 "/ old/recipes"를 모두 사용하고 싶습니다.

답변

11

경로 파일을 건드리지 않으려면 많은 고통을 겪을 것입니다. 주로 경로가 어디로 이동하는지 파악하려고 할 때 레일스가 참조 할 것이기 때문입니다. 그래서 여기 당신이 좋은 생각 확신가되면 설정/routes.rb 코드입니다, 그렇게 할 수있는 또 다른 방법을 알고하지 않습니다 : 이제

scope :path => "old" do 
    resources :recipes 
end 

때 당신이로 이동합니다 recipes_path 노선 /old/recipes, 이것은 내가 맡은 바가 아닐 수도 있습니다. 그런 경우에, 당신은이 scope의 끝에있는 as 옵션을 척 할 수 있습니다 :

scope :path => "old", :as => "old" do 
    resources :recipes 
end 

는 경우,이 경로는 지금도 /old/recipes 라우팅, old_recipes_path 될 것이다.

+0

감사합니다. Ryan. 그 이유는 옵션 접두사를 추가하고 싶습니다. recipes_path도 사용하고 있기 때문입니다. 그래서 "/ recipes"와 "/ old/recipes"경로가 모두 필요합니다. 나는 운이 없다? – sjsc

+1

@sjsc : 둘 다 scoped와 unscoped를 가지고 있으며, recipe_path가 먼저 정의되기를 원합니다. –

+0

Ryan :) 고맙습니다. 후속 조치를 완전히 놓쳤습니다. 정말 고맙습니다. – sjsc