मैं एक रेल 3 एप्लिकेशन में डेविस का उपयोग कर रहा हूं, लेकिन इस मामले में, एक उपयोगकर्ता को मौजूदा उपयोगकर्ता द्वारा बनाया जाना चाहिए, जो निर्धारित करता है कि उसके पास क्या अनुमतियाँ होंगी।
इस वजह से, मुझे चाहिए:
- करने के लिए उपयोगकर्ताओं को साइन अप करने के लिए मार्ग को दूर ।
- करने के लिए अभी भी संपादित करने के लिए उपयोगकर्ताओं को अपने प्रोफाइल की अनुमति देते हैं (परिवर्तन ईमेल पता और पासवर्ड) के बाद वे साइन अप किया है
मैं यह कैसे कर सकता हूँ?
वर्तमान में, मैं निम्नलिखित को पहले से रखकर इस मार्ग को प्रभावी ढंग से हटा रहा हूं devise_for :users:
match 'users/sign_up' => redirect('/404.html')
यह काम करता है, लेकिन मुझे लगता है कि वहाँ एक बेहतर तरीका है, है ना?
अपडेट करें
जैसा कि बेनोइट गैरेट ने कहा, मेरे मामले में सबसे अच्छा उपाय यह है कि रजिस्ट्रेशंस मार्गों को बनाना छोड़ दें और केवल वे बनाएं जो मैं वास्तव में चाहता हूं।
ऐसा करने के लिए, मैं पहले भाग गया rake routes, फिर आउटपुट का उपयोग उन लोगों को फिर से बनाने के लिए किया जो मैं चाहता था। अंतिम परिणाम यह था:
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
ध्यान दें कि:
- मेरे पास अभी भी
:registerableमेराUserमॉडल है devise/registrationsईमेल और पासवर्ड अपडेट करना- अन्य उपयोगकर्ता विशेषताओं को अद्यतन करना - अनुमतियाँ, आदि - एक अलग नियंत्रक द्वारा नियंत्रित की जाती हैं
वास्तविक उत्तर:
डिफ़ॉल्ट डेविस पथ के लिए मार्ग निकालें; अर्थात:
devise_for :users, path_names: {
sign_up: ''
}
https://example.com/users/। नीचे मेरा जवाब देखें।