是否可以命名整个rails应用程序(即添加到url路径)
我有一个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等漂亮url的单一路线?
使用命名空间 。
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
我认为最简单的方法是在路由中使用范围它将在没有名称前缀的情况下工作,就像使用命名空间示例一样
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