【问题标题】:Customize Devise pathnames自定义设计路径名
【发布时间】:2018-04-04 12:20:42
【问题描述】:

我正在尝试自定义设计 gem 创建的 url:

devise_for :users, path: '', path_names: {
    sign_in: 'login',
    sign_out: 'logout',
    sign_up: 'signup',
    password: 'forgot',
    confirmation: 'activate',
    invitation: 'invite'
}

这很好用。它创建以下路线:

/login -> sessions#new
/logout -> sessions#destroy
/signup -> registrations#new
/forgot/new -> passwords#new
/forgot/edit -> passwords#edit
/activate/new -> confirmations#new
/activate/show -> confirmations#show
/invite/new -> invitations#new
/invite/accept -> invitations#edit
/invite/remove -> invitations#destroy

但我想实现这样的目标:

/login -> sessions#new
/logout -> sessions#destroy
/signup -> registrations#new
/forgot -> passwords#new
/recover -> passwords#edit
/activate -> confirmations#new
/confirm -> confirmations#show
/invite -> invitations#new
/invite/accept -> invitations#edit
/invite/remove -> invitations#destroy

如何使用 devise 更改唯一控制器方法的路径名(无需使用自定义控制器手动将它们全部重写)?

【问题讨论】:

    标签: ruby-on-rails ruby url devise routes


    【解决方案1】:

    documentation 看来,您可以像往常一样使用块来更多地定义路线。

    devise_for :users, skip: [:sessions, ...]
    as :user do
      get 'login', to: 'sessions#new', as: :new_user_session
      get 'logout', to: 'sessions#destroy', as: :destroy_user_session
      ...
    end
    

    【讨论】:

      猜你喜欢
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-10
      • 2019-11-19
      • 1970-01-01
      • 2013-07-15
      相关资源
      最近更新 更多