陈述
想象一下,我们有一个库存应用程序,它有一个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's 和 's 是同一个型号movement,实际上是由 处理的MovementsController,但是有不同的流程和处理,这个由create_purchase而不是指定create。
问题
purchase我应该如何为's添加宁静的路线?照顾指定的 HTTP 方法,如GET,POST,PUT,DELETE等。我应该如何写
form_for标签?使用movement模型我们可以写:<%= form_for(@movement) do |f| %>但是如何为或方法调用purchase路径?createupdatepurchase我应该如何为's指定验证规则?我已经在模型上指定了一些规则,但是在提交表单时Movement它们不适用。purchase