簡體   English   中英

Rails 4:設計自定義路線

[英]Rails 4: devise custom routes

我想要一個“帳戶設置”頁面,用於編輯名稱和密碼,以及一個“個人資料編輯”頁面,用於更新個人資料圖片和個人信息。 用戶編輯的默認設計路徑為“ / edit”,但我想將其設置為“ / users /:id / account”。 我還想使配置文件編輯頁面的路徑為'/ users /:id / edit_profile'。 按照devise Wiki上的說明,我能夠更改注冊和登錄路徑,但是它似乎不適用於其他人。

配置/ routes.rb中

devise_for :user, :path => '', :path_names => { :sign_in => "signin", :sign_up => "signup", :edit => "profile" }
resources :users, only: [:index, :show]
resources :projects
root 'static_pages#home'
match '/help', to: 'static_pages#help', via: 'get'
match '/about', to: 'static_pages#about', via: 'get'
match '/contact', to: 'static_pages#contact', via: 'get'

耙路

        new_user_session GET    /signin(.:format)            devise/sessions#new
            user_session POST   /signin(.:format)            devise/sessions#create
    destroy_user_session DELETE /sign_out(.:format)          devise/sessions#destroy
           user_password POST   /password(.:format)          devise/passwords#create
       new_user_password GET    /password/new(.:format)      devise/passwords#new
      edit_user_password GET    /password/edit(.:format)     devise/passwords#edit
                         PATCH  /password(.:format)          devise/passwords#update
                         PUT    /password(.:format)          devise/passwords#update
cancel_user_registration GET    /cancel(.:format)            devise/registrations#cancel
       user_registration POST   /                            devise/registrations#create
   new_user_registration GET    /signup(.:format)            devise/registrations#new
  edit_user_registration GET    /edit(.:format)              devise/registrations#edit
                         PATCH  /                            devise/registrations#update
                         PUT    /                            devise/registrations#update
                         DELETE /                            devise/registrations#destroy
                   users GET    /users(.:format)             users#index
                    user GET    /users/:id(.:format)         users#show
                projects GET    /projects(.:format)          projects#index
                         POST   /projects(.:format)          projects#create
             new_project GET    /projects/new(.:format)      projects#new
            edit_project GET    /projects/:id/edit(.:format) projects#edit
                 project GET    /projects/:id(.:format)      projects#show
                         PATCH  /projects/:id(.:format)      projects#update
                         PUT    /projects/:id(.:format)      projects#update
                         DELETE /projects/:id(.:format)      projects#destroy
                    root GET    /                            static_pages#home
                    help GET    /help(.:format)              static_pages#help
                   about GET    /about(.:format)             static_pages#about
                 contact GET    /contact(.:format)           static_pages#contact

謝謝!

我想將其設置為'/ users /:id / account'

您為什么不執行以下操作:

#config/routes.rb
resources :users, path_names: { edit: "account" } do
   get :edit_profile #-> I presume you have an "edit_profile" controller action?
end

這將為您提供以下路線:

domain.com/users/:id/account #-> edit
domain.com/users/:id/edit_profile #-> edit_profile

-

Devise文檔建議您不能直接使用Devise編輯user對象-更多用於定義系統的authentication系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM