Ruby on rails 用于索引、删除、创建和编辑以外的操作的命名路由(RESTful)

Ruby on rails 用于索引、删除、创建和编辑以外的操作的命名路由(RESTful),ruby-on-rails,routing,Ruby On Rails,Routing,举例说明: class Customer has_many :sales_orders end class SalesOrder belongs_to :customer end 我想让客户列出准备发送的销售订单,我应该: 将路由或 创建用于报告的新控制器 对于第一个,路线中应该有什么。rb 对于第二个,route.rb中没有任何内容,我们可以使用最后定义的路由:controller/:action 我会选择第一个选项,因为您想要的视图只是销售订单的另一个视图,您已经有了资源/控制器

举例说明:

class Customer
  has_many :sales_orders
end

class SalesOrder
  belongs_to :customer
end
我想让客户列出准备发送的销售订单,我应该:

  • 将路由或
  • 创建用于报告的新控制器
  • 对于第一个,路线中应该有什么。rb


    对于第二个,route.rb中没有任何内容,我们可以使用最后定义的路由:controller/:action 我会选择第一个选项,因为您想要的视图只是销售订单的另一个视图,您已经有了资源/控制器

    路线为:

    map.resources:sales\u orders,:collection=>{:can\u delivery=>:get}

    这将为您提供…/sales\u orders/can\u delivery和助手
    can\u delivery\u sales\u orders\u路径
    +
    can\u delivery\u sales\u orders\u url

    旁注

    与选项:collection一起,您还可以添加
    :only=>[:new,:create,:destroy]
    例如,如果您的控制器只需要new,则可以通过标准restful操作创建和销毁

    另外,确保你把这个放在上面的“捕获所有”路线的底部,如果你的所有动作都是restful的,我建议你把它注释掉

    最后,本指南是在rails中布线的良好开端: