提问人:whitemystyle 提问时间:4/14/2021 最后编辑:whitemystyle 更新时间:4/15/2021 访问量:166
Rails 6 路由用于 admin 部分,URL 中带有参数
Rails 6 routing for admin section with arguments in the URL
问:
如何在“/admin”之前使用参数组织 /admin 部分的路由。
例如,/:country_id/:lang_id/admin
路径示例,/ukraine/english/admin
我试过: 作用域路径:“/:country_id/:lang_id/admin”, :as => “admin” do 资源 :cities, controller:'admin/cities'
但是“admin_cities_path”创建了错误的内部链接 <%= link_to city.title, admin_cities_path(city.id) %>
Rails 返回以下 UR:: /1/english/admin/cities 而不是: /乌克兰/英语/admin/cities/1
路线.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/', to: 'categories#show', 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
答:
0赞
Kishor Vyavahare
4/14/2021
#1
我只是猜测你想要什么,如果它不满意,请评论一些代码或更多信息来解决它。
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
等等......
评论
0赞
whitemystyle
4/14/2021
嗨,同样的问题,Rails 返回以下 URL:/1/english/admin/cities 而不是:/ukraine/english/admin/cities/1
0赞
Kishor Vyavahare
4/15/2021
您可以使用friendly_id gem: github.com/norman/friendly_id
评论
route.rb