2011-01-05 12 views
5

에 대한 다른 자동 경로 그래서 나는 Photoset라는 모델 클래스와 Sets라는 컨트롤러를 가지고 있습니다. 리소스가 있습니다. 모델의 인스턴스에서 경로가 생성 될 때를 제외하고 모든 작업에 적용되는 집합입니다. 예를 들어 내가 사용하는 경우 :레일 3 경로 : 모델

<%= form_for(@photoset) do |f| %> 

내가 오류 얻을 :

no route matches {:controller=>"sets"} 

궁극적으로 내가 모든 URI를 할 수 .../세트/... (컨트롤러 이름)을 원하는 대신을 ... ./photosets/...(모델 이름)

도우미를 사용할 수있는 방법이 있습니까?

--EDIT-- 을 heres 내 레이크 경로 출력 : 내가 모델의 인스턴스를 양식을 빌드 할 때 모든 그냥 멋쟁이 작동

sets GET /sets(.:format)   {:controller=>"sets", :action=>"index"} 
     POST /sets(.:format)   {:controller=>"sets", :action=>"create"} 
new_set GET /sets/new(.:format)  {:controller=>"sets", :action=>"new"} 
edit_set GET /sets/:id/edit(.:format) {:controller=>"sets", :action=>"edit"} 
    set GET /sets/:id(.:format)  {:controller=>"sets", :action=>"show"} 
     PUT /sets/:id(.:format)  {:controller=>"sets", :action=>"update"} 
     DELETE /sets/:id(.:format)  {:controller=>"sets", :action=>"destroy"} 

는 문제입니다. 레일이 Set 컨트롤러로 Photoset 모델을 직접 연결하려고한다는 것을 알 수있는 방법이 없다는 것을 알고 있지만이를 지정하는 방법을 모르겠습니다.

당신은 photosets_path, photoset_path, new_photoset_path 등을 사용할 수 있도록

resources :photosets, :as => "sets" 

을 설정해야

+0

당신은'레이크 routes' 출력을 보여줄 수 있습니까? – Heikki

답변

10

Photoset 모델, 컨트롤러 및 URL 집합이 /sets/1/edit이어야합니다. 이 같은 간단한 양식

resources :sets, :as => "photosets" 

작품 :

<%= form_for(@photoset) do |f| %> 
    <%= f.text_field :title %> 
    <%= f.submit "Save" %> 
<% end %> 
+0

이 모든 기능을 동일하게 유지하면 URL을 변경하여 변경하는 방법이 있습니까? '/ photosets/1/edit' 대신'/ sets/1/edit'을 만들 수 있습니까? 나는 여전히'form_for (@photoset) '를 사용하고 싶지만'/ sets/...'를 가리키고 싶다. – greggreg

+0

답변을 업데이트했습니다. – Heikki

+1

와우 완벽. 감사! – greggreg

-1

...하지만 당신이 더 많은 정보를 필요로하는 경우 sets

같은 URL이 here를 참조 보여줍니다

+0

이렇게하면 helpet가 photoset_path에서 set_path로 변경되지만 불행히도 URL은 모두 여전히/photoset입니다. 게시 한 라우팅 가이드 링크의 섹션 4.3을 확인하십시오. – greggreg