जैसा कि मैंने कहा, हमें लगता है कि कुछ भूमिकाओं के लिए विशेषताओं को प्रतिबंधित करने का सबसे अच्छा तरीका strong parameters मणि का उपयोग करना है जिसे डीएचएच ने हाल ही में पेश किया था। यह रेलवे 4 का भी हिस्सा होगा।
भले ही यह फिट न हो, फिर भी सिद्धांतों को एकीकृत करना एक अच्छा विचार है क्योंकि यह आपके रेल 3 से 4 अपग्रेड को आसान बना देगा।
यदि आपके पास रेलसैक्स प्रो सदस्यता है, तो रायन बेट्स ने fantastic tutorial पर एक और बना दिया है।
संक्षेप में, रेलवेकास्ट में इसकी क्या सिफारिश की गई है।
मणि स्थापित करने के बाद, अपने मॉडल से attr_accessible हटा दें।
एक प्रारंभकर्ता को यह करें:
:
ActiveRecord::Base.send(:include, ActiveModel::ForbiddenAttributesProtection)
अपने नियंत्रक ::
def update
@topic = Topic.find(params[:id])
if @topic.update_attributes(topic_params)
redirect_to topics_url, notice: "Updated topic."
else
render :edit
end
end
अपने नियंत्रक में एक निजी पद्धति बनाएं में अपने अद्यतन कार्रवाई में परिवर्तन
def topic_params if current_user && current_user.admin? params[:topic].permit(:name, :sticky) else params[:topic].permit(:name) end end
आपकी स्थिति में, जैसे हम करते हैं, आपको अपनी भूमिकाओं का उपयोग करने के लिए topic_params विधि को बदलना होगा।
रेलस्कास्ट में कुछ और सुझाव हैं और यह वास्तव में $ 9 के लायक है! (मैं साइट से संबद्ध नहीं हूं, यह सिर्फ हमारे लिए अमूल्य साबित हुआ है)
अगर यह मदद करता है तो मुझे बताएं।
डाउनवोट और करीबी वोट के साथ क्या है? एक स्पष्टीकरण की पेशकश करने की देखभाल? – marcamillion
आपने क्या इंस्टॉल किया है? क्या आप कैनकन और तैयार कर रहे हैं? डाउनवोट शायद जानकारी की कमी है। – simonmorley
@ सिमोनमोर्ली हां, कैनकन और डेविस। क्षमा करें, प्रश्न अपडेट करेंगे। – marcamillion