現在掙扎幾個小時。在我最初製作自己的認證系統後,我將Devise gem集成到了我的Rails項目中,但是我面臨着一個我無法理解的問題。Ruby on Rails設計after_sign_in_path_for在不相關的控制器上調用
當方法用戶登錄:
def after_sign_in_path_for(resource_or_scope)
user = resource_or_scope
user_path(user.username)
end
被觸發,將用戶重定向到他們的個人資料。
我有一個編輯用戶路線,它將用戶帶到一個頁面,他們可以在其中編輯他們的詳細信息並添加一個「想要的項目」。兩個獨立的表單,兩個單獨的控制器和操作。
「添加想要的項目」方法發佈到另一個控制器,該控制器呈現名爲WantsController
的視圖,並通過關聯向用戶添加通緝事項。
由於某種原因,在提交此表單時調用after_sign_in_path_for
方法?它無關,與登錄...
這裏是我的路線:
#users/auth
devise_for :users, :skip => [:sessions, :registrations]
devise_scope :user do
# registration
get "/signup", to: "users#new", as: :sign_up
post "/signup", to: "users#create", as: :sign_up_create
# account
get "/:username/account", to: "users#edit", as: :user_account
put "https://stackoverflow.com/users/:id", to: "users#update", as: :user_update
# shows
get "/:username", to: "users#show", as: :user
get "/:username/interests", to: "users#interests", as: :user_interests
get "/:username/offers", to: "users#offers", as: :user_offers
get "/:username/trades", to: "users#trades", as: :user_trades
# auth
post "/signin" => 'devise/sessions#create', as: :sign_in
delete "/signout", to: "devise/sessions#destroy", as: :sign_out
#wants
resources :wants, only: [:create, :destroy]
end
如果我放在wants
資源的色器件範圍之外(這是我期望它應該去)我收到以下內容:
找不到設計映射路徑「/想」
這裏發生了什麼?難倒!
謝謝。