我了解当您为特定成员创建自定义路由时,您将使用
resources :photos do
get 'preview', on: :member
end
例如,如果您想要删除整个评论集合,您将使用
resources :comments do
delete :destroy_all, on: :collection
end
但在这种情况下你会使用:: new。有人可以给出一个详细的例子,而不仅仅是指向那些只是说
的文档.10.3为其他新操作添加路由 要使用:on快捷方式添加备用新操作:
resources :comments do get 'preview', on: :new end
这将使Rails能够使用GET识别/ comments / new / preview等路径,并路由到预览操作 CommentsController。它还将创建preview_new_comment_url 和preview_new_comment_path路线助手。
答案 0 :(得分:3)
文档中的示例实际上是一个非常好的真实世界示例。
假设您有一个Comment
模型,用于存储用户注释。此外,您希望能够接受新评论并允许用户预览评论的外观,而无需实际保存评论。
使用标准CRUD控制器,流程为:
在这种情况下还有一个额外的步骤:
所以on: :new
允许你从新动作中捎带另一个动作。现在,你可能会问自己,为什么on: :new
不只是on: :collection
?因为:集合适用于对所有评论进行操作的路线,而“评论/新/预览”则适用于所有评论。明确地对一个未保存的评论进行操作。
我希望这很清楚。如果我能够更详细地解释,请告诉我。