Rails 路由嵌套资源

发布于 2024-12-29 04:57:13 字数 1803 浏览 2 评论 0原文

我有下一个资源,

 resources :countries do
    resources :cities
 end    

 resources :cities do
    resources :streets
 end

它会生成下一个路线,

GET    /countries/:country_id/cities(.:format)                          cities#index
POST   /countries/:country_id/cities(.:format)                          cities#create
new_country_city GET    /countries/:country_id/cities/new(.:format)                      cities#new
edit_country_city GET    /countries/:country_id/cities/:id/edit(.:format)                 cities#edit
GET    /countries/:country_id/cities/:id(.:format)                      cities#show
PUT    /countries/:country_id/cities/:id(.:format)                      cities#update
DELETE /countries/:country_id/cities/:id(.:format)                      cities#destroy


......
cities GET    /cities(.:format)                                                cities#index
POST   /cities(.:format)                                                cities#create
new_city GET    /cities/new(.:format)                                            cities#new
edit_city GET    /cities/:id/edit(.:format)                                       cities#edit
city GET    /cities/:id(.:format)                                            cities#show
PUT    /cities/:id(.:format)                                            cities#update
DELETE /cities/:id(.:format)                                            cities#destroy

我不想在没有国家/地区 ID 的情况下访问城市,但我也不想使用 3 级嵌套资源,所以我可以像下一个一样更改路线

 resources :countries do
        resources :cities
     end    

     resources :cities, :except => [:index, :destroy, :edit, :show, :create, :new, :update] do
        resources :streets
     end

是否有某种快捷方式来禁用所有资源操作而不是在 : except 选项中写入所有默认操作????

I have next resources

 resources :countries do
    resources :cities
 end    

 resources :cities do
    resources :streets
 end

it generates next routes

GET    /countries/:country_id/cities(.:format)                          cities#index
POST   /countries/:country_id/cities(.:format)                          cities#create
new_country_city GET    /countries/:country_id/cities/new(.:format)                      cities#new
edit_country_city GET    /countries/:country_id/cities/:id/edit(.:format)                 cities#edit
GET    /countries/:country_id/cities/:id(.:format)                      cities#show
PUT    /countries/:country_id/cities/:id(.:format)                      cities#update
DELETE /countries/:country_id/cities/:id(.:format)                      cities#destroy


......
cities GET    /cities(.:format)                                                cities#index
POST   /cities(.:format)                                                cities#create
new_city GET    /cities/new(.:format)                                            cities#new
edit_city GET    /cities/:id/edit(.:format)                                       cities#edit
city GET    /cities/:id(.:format)                                            cities#show
PUT    /cities/:id(.:format)                                            cities#update
DELETE /cities/:id(.:format)                                            cities#destroy

I dont want access to cities can be without country id but also I don't want to use 3-levels nested resources, so I can change routes like next

 resources :countries do
        resources :cities
     end    

     resources :cities, :except => [:index, :destroy, :edit, :show, :create, :new, :update] do
        resources :streets
     end

Is there some kind of shortcut to disable all action instead of write all default actions at :except option ????

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

昨迟人 2025-01-05 04:57:13
resources :cities, :only => [] do
    ...
end
resources :cities, :only => [] do
    ...
end
迟月 2025-01-05 04:57:13

你可以按照这个路线

  resources :topics do
    resources :solutions
  end

  resources :solutions, only: [] do
    resources :reviews, except: [:show, :index]
  end

You can follow this routes

  resources :topics do
    resources :solutions
  end

  resources :solutions, only: [] do
    resources :reviews, except: [:show, :index]
  end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文