如何解决带有 URL 参数的管理部分的 Rails 6 路由
如何在“/admin”之前使用参数组织 /admin 部分的路由。
例如,/:country_id/:lang_id/admin
路径示例,/ukraine/english/admin
我试过: 范围路径:"/:country_id/:lang_id/admin",:as => "admin" do 资源:城市,控制器:'admin/cities'
但是“admin_cities_path”创建了错误的内部链接
Rails 返回以下 UR:: /1/english/admin/cities 代替: /ukraine/english/admin/cities/1
Routes.rb
Rails.application.routes.draw do
devise_for :users
devise_for :views
get 'home/index',to: 'application#index'
root to: "home#index"
get '/:id/:lang_id/admin',to: 'admin/admin#index'
get '/admin',to: 'admin/admin#index'
scope path:"/:country_id/:lang_id/admin",:as => "admin" do
#namespace :admin do
resources :cities,controller:'admin/cities'
resources :comments do
member do
get 'approve'
get 'disapprove'
end
end
resources :countries
resources :industries
resources :products
resources :languages
resources :categories
resources :companies
end
#root "articles#index"
#get "/admin/countries",to: "countries#index"# For details on the DSL available within this file,see https://guides.rubyonrails.org/routing.html
# resources :countries do
# resources :languages
# end
resources :countries
get '/countries/',to: 'countries#index'
get '/languages/',to: 'languages#index'
get '/:id/',to: 'countries#show',as: 'localized_country'
get '/:id/:lang_id/',to: 'languages#show',as: 'localized_language'
#get '/:id/:lang_id/:category_id/',to: 'categories#show',as: 'localized_category'
get '/:id/:lang_id/:industry_id/',to: 'industries#show',as: 'localized_industry'
get '/:id/:lang_id/:industry_id/:category_id/',as: 'localized_category'
get '/:id/:lang_id/:industry_id/:category_id/:city_id/',to: 'cities#show',as: 'localized_city'
get '/:id/:lang_id/:industry_id/:category_id/product/:product_id/',to: 'products#show',as: 'localized_product'
resources :languages,param: :land_id
resources :products
resources :industries
resources :categories,param: :category_id
resources :products do
resources :comments
end
end
解决方法
如果不满意,我只是在猜测您想要什么,然后请注释一些代码或更多信息来解决它。
resources :country,path: '' do
resources :language,path: '' do
namespace "admin" do
resource :cities
end
end
end
以上代码将按照以下格式报告路径。
new_country_language_admin_cities GET /:country_id/:language_id/admin/cities/new(.:format) admin/cities#new
edit_country_language_admin_cities GET /:country_id/:language_id/admin/cities/edit(.:format) admin/cities#edit
等等...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。