假設我們有一個清單應用程序,還有它是一個Movement
模型,它代表了同類產品購買或銷售產品的任何動作。所以我們有默認的REST路由。
movements GET /movements(.:format) {:action=>"index", :controller=>"movements"}
POST /movements(.:format) {:action=>"create", :controller=>"movements"}
new_movement GET /movements/new(.:format) {:action=>"new", :controller=>"movements"}
edit_movement GET /movements/:id/edit(.:format) {:action=>"edit", :controller=>"movements"}
movement GET /movements/:id(.:format) {:action=>"show", :controller=>"movements"}
PUT /movements/:id(.:format) {:action=>"update", :controller=>"movements"}
DELETE /movements/:id(.:format) {:action=>"destroy", :controller=>"movements"}
對於助記符提出,我們希望有一些描述性的途徑,如:
new_purchase /purchase/new(.:format) {:controller=>"movements", :action=>"new_purchase"}
edit_purchase /purchase/:id/edit(.:format) {:controller=>"movements", :action=>"edit_purchase"}
如果你能看到purchase
的像movement
同一型號的,實際上是由MovementsController
處理,但是有不同的流量和處理,這由create_purchase
而不是create
指定。
問題
我應該如何添加對
purchase
的寧靜的路線?以指定的HTTP方法,如照顧GET
,POST
,PUT
,DELETE
等我應該怎麼寫
form_for
標籤?使用movement
模型我們可以寫出:<%= form_for(@movement) do |f| %>
但是如何調用purchase
路徑爲create
或update
方法?我應該如何指定
purchase
的驗證規則?我已在Movement
模型中指定了一些規則,但在提交表單時,它們不適用於purchase
。
我在帖子中添加了第二個問題。 – Israel 2012-07-23 03:07:38
使用':via'選項對指定HTTP方法很有用。 – Israel 2012-07-23 03:11:49
希望更新的答案解決了你的第二個問題。先試着用Google搜索你的問題。如果你不能在谷歌找到答案,你可以在這裏發佈:) – 2012-07-23 04:09:16