2011-08-10 18 views
17

Benim raylarımda 3 uygulamayı kullanarak, kullanıcıların parolalarını düzenlemeleri için bir bağlantı sağlamak istiyorum. Düzenleme parola ekranını gösterme

Ben işaret eden bir standart bağlantı vardır:/Kullanıcılar/şifre/düzenleme ...

Started GET "https://stackoverflow.com/users/password/edit" for 127.0.0.1 at 2011-08-10 10:11:46 -0700 
    Processing by Devise::PasswordsController#edit as HTML 
    User Load (0.6ms) SELECT "users".* FROM "users" WHERE "users"."id" = 3 LIMIT 1 
Redirected to http://localhost:3000/ 
Completed 302 Found in 309ms 

altında çıktı Neden raylar yönlendirilmesidir Log? Şifre düzenleme sayfasını neden gösteremiyorum? Teşekkürler

+1

'routes.rb' ve' PasswordController' 'nizi gösterir – fl00r

+0

Hızlı iletide yönlendirmenin nedeni nedir? Kullanıcı giriş yapmadı, çünkü giriş yapmıyorsanız ve bir şifreyi düzenlemeye çalışıyorsanız, sizi root'a yönlendirecektir. – numbers1311407

+0

@ numbers1311407 Aslında sorun, kullanıcının ** girişinin ** olmasıdır. Bu eylem sadece ** giriş yapmış değil, parolalarını unutmuş ve parola sıfırlama jetonu almış olan kullanıcılar içindir. –

cevap

27

Devise::PasswordsController#edit, bir sıfırlama belirteci kullanarak parolalarını değiştirmek isteyen kimliği doğrulanmamış kullanıcılar içindir. Bu sıfırlama jetonu daha önce kullanıcıya bir e-postayla gönderilmiştir (Şifre talimatlarını sıfırla). Kullanıcı zaten giriş yapmışsa, bu düzenleme parolası sayfası, kimliği doğrulanmış kullanıcılar tarafından erişilememesi gerektiğinden, her zaman oturum açma yoluna yönlendirilir.

İstediğinizi, kullanıcının oturum açtıktan sonra parolasını değiştirmesine izin vermek olduğunu varsayalım. Bunun için Devise::RegistrationsController#edit kullanmanız gerekir.

+2

Diğer kullanıcı profili bilgileri için kayıt denetleyicisinde düzenleme eylemini kullanıyorum. Kullanıcı profili bilgilerini (ad, adres, vb.) Ve şifre güncellemesini ayırmak istiyorum – Batman

+0

@Batman https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-edit- onların-şifre –