मैं निजी संसाधनों को संभालने के लिए डेविस, कैनकन और रोलिफ़ी के आधार पर एक एप्लिकेशन बना रहा हूं।रेल उपयोगकर्ता के माध्यम से रोलिफ भूमिका जोड़ें
डेविस पंजीकरण अक्षम कर दिया गया है क्योंकि मैं उपयोगकर्ताओं को पंजीकरण करने की अनुमति नहीं देना चाहता, जबकि मैं उपयोगकर्ताओं को जोड़ने/संपादित करने के लिए एक व्यवस्थापक इंटरफ़ेस बना रहा हूं।
अब मैं उपयोगकर्ता भूमिका से निपट रहा हूं। मैं व्यवस्थापक को उपयोगकर्ताओं को बनाने और एक ही फॉर्म का उपयोग करके अपनी भूमिका निर्धारित करने की अनुमति देना चाहता हूं। मुझे नहीं पता कि किस प्रकार का रिश्ता रोलिफ़ाई का उपयोग कर रहा है क्योंकि मैं रेल के लिए काफी नया हूं और रूबी और रोलिफी ने अधिक स्पष्ट संबंध के बजाय rolify
विधि को जोड़ा।
मुझे वर्तमान में केवल प्रति उपयोगकर्ता की आवश्यकता है और चाहते हैं। इसलिए यदि कोई व्यक्ति भूमिका को बदलने वाले उपयोगकर्ता को संपादित करता है तो मैं सभी @user.roles
हटा देता हूं और फिर नया सेट करता हूं।
मैं वर्तमान में इसे एक साधारण हैक का उपयोग करके काम करने के लिए कर रहा हूं। मैंने भूमिकाओं का चयन प्रदान करने के लिए Role
एस के संग्रह का उपयोग करके फ़ॉर्म में एक चयन फ़ील्ड जोड़ा है। तब create
और update
तरीकों के अंदर मैं यह कर रहा हूँ:
role = params[:user][:role]
params[:user].delete :role
@user = User.new(params[:user])
respond_to do |format|
if @user.save # update_attributes inside update
@user.add_role role
# ...
end
end
आप मैं Role
मॉडल के साथ सीधे बातचीत नहीं कर रहा हूँ, लेकिन उपलब्ध कराई गई add_role
पद्धति का उपयोग करके देख सकते हैं के रूप में। यह एक और मुद्दा भी बनाता है, क्योंकि मुझे अद्यतन दृश्य को चुनने के लिए उचित डिफ़ॉल्ट मान सेट करने की अनुमति देने के लिए वर्तमान भूमिका को पुनर्प्राप्त करना होगा (सबसे महत्वपूर्ण तथ्य के बगल में कि मुझे नहीं पता कि एक भूमिका की उपस्थिति को कैसे सत्यापित किया जाए)।
यह एक बहुत गंदगी समाधान होने जा रहा है, इसलिए मुझे कुछ बिंदु देखना है, और शायद यह करने के बारे में कुछ सुझाव। मैं सारा दिन बिताया है इस :-(
पर काम कर आप कुछ जानकारी की जरूरत है मुझे कहें।
पी एस मैं नेस्ट संसाधनों के बारे में एक screenscast देख रहा हूँ, लेकिन डीबी में मुझे लगता है कि यह उपयोग कर रहा है देख सकते हैं एक तिहाई तालिका !!
लॉल ... मैं अपना रास्ता तय कर रहा हूं, रोलिफ़ जेम को समझने में बहुत अधिक समय लग रहा था। – Benjamin
लॉल, अच्छा एक। यह अभी भी एक वैध उपकरण बना हुआ है, मुझे यकीन है, लेकिन सरल चीजों के लिए मुझे लगता है कि एक साधारण स्ट्रिंग/पूर्णांक फ़ील्ड बनाना बहुत आसान है। –