是否可以命名整个rails应用程序(即添加到url路径)

时间:2012-02-14 21:44:05

标签: ruby-on-rails routing router

我有一个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?

等漂亮网址的单一路线

2 个答案:

答案 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
相关问题