2011-01-05 69 views
5

所以我有一個名爲Photoset的模型類和一個名爲集的控制器。 我得到的資源:設置工作的一切,除非路徑是從模型的實例生成的。例如,如果我使用:軌道3路線:不同的汽車路線模型

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

我得到的錯誤:

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

最終我想所有URI是... /套/ ...(控制器名稱),而不是.. ./photosets/...(model name)

有沒有辦法做到這一點,仍然能夠使用幫手?

- 編輯 - 我的繼承人耙路輸出:

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

,所有的工作只是花花公子,問題是當我嘗試建立一個窗體關閉模型的實例。我知道rails無法知道im試圖直接將Photoset模型與Set控制器綁定,但我不知道如何指定它。

+0

,你能否告訴'耙routes'輸出? – Heikki 2011-01-05 12:30:06

回答

10

你有一個Photoset模型,套件控制器和網址需要形式爲/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 2011-01-06 00:00:59

+0

更新了答案。 – Heikki 2011-01-06 01:57:35

+1

完美。謝謝! – greggreg 2011-01-06 04:59:52

-1

您應該設置

resources :photosets, :as => "sets" 

它允許您使用photosets_pathphotoset_pathnew_photoset_path,等等......但顯示的URL爲sets

here如果您需要更多信息

+0

這會將幫助者從photoset_path更改爲set_path,但不幸的是網址仍然是/ photoset。請檢查您發佈的路線指南鏈接的第4.3節。 – greggreg 2011-01-05 19:19:25