【发布时间】:2012-07-21 06:42:48
【问题描述】:
声明
假设我们有一个库存应用程序,它有一个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的添加restful 路由?负责指定 HTTP 方法,例如GET、POST、PUT、DELETE等。我应该如何写
form_for标签?使用movement模型,我们可以编写:<%= form_for(@movement) do |f| %>但是如何为create或update方法调用purchase路径?我应该如何为
purchase指定验证规则?我已经在Movement模型上指定了一些规则,但是在提交表单时它们并没有应用于purchase。
【问题讨论】:
标签: ruby-on-rails-3 rest routes