Bir Rails 3 uygulamasında Devise kullanıyorum, ancak bu durumda, bir kullanıcı hangi izinlere sahip olacağını belirleyen mevcut bir kullanıcı tarafından oluşturulmalıdır.
Bundan dolayı şunu istiyorum:
- To kullanıcıların kaydolmak için rotayı kaldırmak .
- İçin hala düzenlemek için kullanıcılar, profillerinin izin (değiştir e-posta adresi ve şifre) sonra onlar kaydettik
Bunu nasıl yapabilirim?
Şu anda, aşağıdakileri daha önce yerleştirerek bu rotayı etkili bir şekilde kaldırıyorum devise_for :users
:
match 'users/sign_up' => redirect('/404.html')
Bu işe yarıyor, ama daha iyi bir yol olduğunu düşünüyorum, değil mi?
Güncelleme
Benoit Garret'in dediği gibi, benim durumumdaki en iyi çözüm, kayıt rotalarını toplu olarak oluşturmayı atlamak ve sadece gerçekten istediklerimi oluşturmaktır.
Bunu yapmak için önce koştum rake routes
, sonra çıktıyı istediklerimi yeniden oluşturmak için kullandım. Sonuç şuydu:
devise_for :users, :skip => [:registrations]
as :user do
get 'users/edit' => 'devise/registrations#edit', :as => 'edit_user_registration'
put 'users' => 'devise/registrations#update', :as => 'user_registration'
end
Bunu not et:
- Hala var
:registerable
benim deUser
modeli devise/registrations
e-posta ve şifrenin güncellenmesini sağlar- Diğer kullanıcı özniteliklerinin (izinler vb.) Güncellenmesi farklı bir denetleyici tarafından gerçekleştirilir
Gerçek cevap:
Varsayılan Geliştirme yolları için yolu kaldırın; yani:
devise_for :users, path_names: {
sign_up: ''
}