嵌套资源 rails 路由的别名

Alias name for nested resources rails routes

我有 batch_class 模型,在该文章下,作业资源在那里。 routes.rb 看起来像这样。

resources :batch_classes do
  member do 
    resources :articles, except: [:index] 
    resources :assignments
 end

结束

问题是我没有得到想要的 URL 路线。 我的 rake routes 编辑 assignments 显示了这一点。

/batch_classes/:id/assignments/:id/edit(.:format)

别名 edit_assignment_path。但是,我的预期路线是

/batch_classes/:batch_class_id/assignments/:id/edit(.:format).

请帮忙。

resources :assignments带出成员块即可实现想要的路径路线

resources :batch_classes do
  resources :assignments
  member do 
    #...
  end
end

强烈建议阅读 this 文档以正确实施。

您可以通过将嵌套资源放在父资源中来获得嵌套路由。

resources :batch_classes do
  resources :assignments
end

那么,您肯定会有一条名为 edit_batch_class_assignment_path 的路线,并且 您可以将实例传递为 edit_batch_class_assignment_path(@batch_class, @assignment)