【发布时间】:2019-07-26 13:18:34
【问题描述】:
我在自定义路由方面遇到了一些问题。我要做的是从路由中删除模型并动态使用记录名称。
所以而不是:
site.com/events/my-event
我希望它是:
site.com/my-event
我破解了它以使用以下代码,唯一的问题是我无法访问我的管理命名空间,因为它被视为事件记录(和任何其他路线):
get('/:id', to: redirect do |params, request|
id = request.path.gsub("/", "")
"/events/#{id}"
end)
我知道这个重定向是不对的,我只是不精通路由选项。这应该如何正确完成?
routes.rb
Rails.application.routes.draw do
resources :events, param: :id, path: "" do
get 'login', to: 'sessions#new', as: :login
get 'logout', to: 'sessions#destroy', as: :logout
post 'sessions', to: 'sessions#create', as: :session_create
end
namespace 'admin' do
root "events#index"
resources :sessions, only: [:create]
get 'login', to: 'sessions#new', as: :login
get 'logout', to: 'sessions#destroy', as: :logout
resources :events
end
end
【问题讨论】:
-
能否请您发布整个
routes.rb文件? -
确保任何两条路线都不应该相同。如果您特定于此,则使用一些前缀更改管理路由。
标签: ruby-on-rails routing ruby-on-rails-5 url-routing