2011-01-05 11 views
5

, więc mam klasy modelu o nazwie Photoset i kontroler o nazwie Zestawy. ive got resources: zestawy działające dla wszystkiego, z wyjątkiem sytuacji, gdy ścieżki są generowane poza wystąpieniem modelu. Na przykład, jeśli mogę użyć:szyny 3 trasy: inna trasa automatyczna dla modelu

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

pojawia się błąd:

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

ostatecznie chcę wszystkie URI być .../ustawia/... (nazwa kontrolera) zamiast .. ./photosets/...(model name)

Czy jest jakiś sposób, aby to zrobić i nadal móc korzystać z pomocy?

--EDIT-- heres moje wyjście trasy natarcia:

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"} 

że wszystko działa tak dandys, problem jest gdy próbuję zbudować formę off instancji modelu. Rozumiem, że rails nie ma możliwości dowiedzenia się, że próbuję powiązać model Photoset bezpośrednio z kontrolerem Set, ale nie wiem, jak to określić.

+0

można pokazać 'wyjście routes' natarcia? – Heikki

Odpowiedz

10

Masz model zestawu zdjęć, kontroler Ustawień i adresy URL muszą mieć postać /sets/1/edit.

resources :sets, :as => "photosets" 

współpracuje z prostą formą takiego:

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

utrzymując tę ​​samą funkcjonalność, czy istnieje sposób na jej zmianę, aby adresy URL były inne? zamiast '/ photosets/1/edit' mógłbym zrobić to'/sets/1/edit'? Nadal chcę użyć 'form_for (@photoset)', ale chcę go wskazywać '/ sets/...'. – greggreg

+0

Zaktualizowano odpowiedź. – Heikki

+1

Wow doskonały. dzięki! – greggreg

-1

Należy ustawić

resources :photosets, :as => "sets" 

które pozwalają korzystać photosets_path, photoset_path, new_photoset_path, itp ... ale pokazuje url jako sets

Zobacz here jeśli potrzebujesz więcej informacji

+0

zmienia to pomocników z photoset_path na set_path, niestety adresy URL są nadal/photoset. sprawdź sekcję 4.3 opublikowanego linku przewodnika po trasie. – greggreg

Powiązane problemy