我有一个rails应用程序,在routes.rb中有大约30个匹配项
match '/send-email' => 'index#send_email'
match '/forgot-password' => 'users#forgot_password', :as => :forgot_password
match '/forgot-password-confirmation' => 'users#forgot_password_confirmation'
match '/user/save-password' => 'users#save_password', :as => 'edit_users_password'
match '/user/home', :to => 'users#home'
match '/users/:id', :to => 'users#show', :as => "user_show"
添加前置路线的最佳方法是什么?
like /user/home -> /app/user/home,
/user/show/:id -> /app/user/show/:id
有没有办法在全球范围内应用?然后为root添加例外?和domain.com/user-name?
等漂亮网址的单一路线答案 0 :(得分:2)
使用namespace。
namespace :app do
match '/send-email' => 'index#send_email'
match '/forgot-password' => 'users#forgot_password', :as => :forgot_password
match '/forgot-password-confirmation' => 'users#forgot_password_confirmation'
match '/user/save-password' => 'users#save_password', :as => 'edit_users_password'
match '/user/home', :to => 'users#home'
match '/users/:id', :to => 'users#show', :as => "user_show"
end
答案 1 :(得分:0)
我认为最简单的方法是在路线中使用范围 它将在没有名称前缀的情况下工作,就像使用命名空间 示例
scope "/app" do
match '/send-email' => 'index#send_email'
match '/forgot-password' => 'users#forgot_password', :as => :forgot_password
match '/forgot-password-confirmation' => 'users#forgot_password_confirmation'
match '/user/save-password' => 'users#save_password', :as => 'edit_users_password'
match '/user/home', :to => 'users#home'
match '/users/:id', :to => 'users#show', :as => "user_show"
end