मैं गए रेल सुरक्षा चिंताओं पर पढ़ रहा साथ बड़े पैमाने पर काम सुरक्षा चिंता का विषय है और मुझे बनाता है कि सबसे अधिक चिंतित बड़े पैमाने पर काम है। मेरा आवेदन attr_accessible का उपयोग कर रहा है, हालांकि मुझे यकीन नहीं है कि मुझे पता है कि खुलासा संबंधों को संभालने का सबसे अच्छा तरीका क्या है। आइए मान लें कि हमारे पास मूल सामग्री निर्माण/स्वामित्व वेबसाइट है। कोई उपयोगकर्ता ब्लॉग पोस्ट बना सकता है, और उस ब्लॉग पोस्ट से जुड़ी एक श्रेणी हो सकती है।रेल: belongs_to रिश्तों
तो मैं तीन मॉडल है:
- उपयोगकर्ता
- पोस्ट: उपयोगकर्ता के अंतर्गत आता है
मैं: एक उपयोगकर्ता और एक वर्ग
संसाधनों की जांच की गई है (विशेष रूप से railscast #178 और resource जो कि रेलवेकास्ट से प्रदान की गई थी), दोनों का उल्लेख है कि एसोसिएशन को बड़े पैमाने पर असाइन करने योग्य नहीं होना चाहिए, जो समझ में आता है। मैं सिर्फ यकीन नहीं और कैसे उपयोगकर्ता को बदलने के लिए क्या पद की श्रेणी एक railsy तरह से होगा अनुमति देने के लिए कर रहा हूँ।
यह कैसे हल करने के लिए सबसे अच्छा पर कोई भी विचार? क्या मैं इसे गलत तरीके से देख रहा हूं?
अद्यतन: उम्मीद है कि मेरी चिंता को थोड़ा और स्पष्ट करें।
def create
@post = Post.new(params[:category])
@post.user_id = current_user.id
# CHECK HERE IF REQUESTED CATEGORY_ID IS OWNED BY USER
# continue on as normal here
end
कि बहुत काम की तरह लगता है:
मान लीजिए कि मैं पोस्ट कर रहा हूँ चलो, मैं निम्नलिखित की तरह कुछ की जरूरत है? मुझे अद्यतन और निर्माण दोनों में प्रत्येक नियंत्रक पर जांच करने की आवश्यकता होगी। ध्यान रखें कि संबंधों के संबंध में केवल एक ही है।
अन्य उत्तर बहुत उपयोगी था, लेकिन वास्तव में मेरी समस्या हल हो गई, इस प्रकार मैं इसे स्वीकार कर रहा हूं। – dpb