2012-01-22 8 views
15

मैं एक रेल app में सभी विशेषताओं इस आवेदन विन्यास विकल्प का उपयोग कर सुलभ नहीं बना दिया है:सामूहिक असाइनमेंट के लिए सभी मॉडल विशेषताओं को कैसे पहुंचाया जा सकता है?

config.active_record.whitelist_attributes = true 

ज्यादातर मामलों में मैं कुछ गुण मैं मॉडल में attr_accessible का उपयोग कर सुलभ के रूप में सुलभ होना चाहते हैं परिभाषित करते हैं। मैं किसी विशेष मॉडल के सभी विशेषताओं को कैसे सुलभ बना सकता हूं। कुछ attr_accessible :all की तरह।

class User < ActiveRecord::Base 
    # roughly speaking sets list of model protected attributes to [] 
    # making all attributes accessible while mass-assignment 
    attr_protected 
end 
+1

आमतौर पर, यदि आप केवल 'attr_accessible' लाइन को छोड़ते हैं तो एक मॉडल विशेषताएँ पहुंच योग्य होती हैं। – Frost

+1

मेरा मानना ​​है कि OP ने डिफ़ॉल्ट रूप से सभी विशेषताओं को गैर-सुलभ बनाने के लिए 'config.active_record.whitelist_attributes = true' का उपयोग किया था। –

उत्तर

28

आप ऐसे ही तर्क के बिना attr_protected फोन करके सब सुलभ गुण बना सकते हैं आपके मॉडल, जबकि यह केवल एक मॉडल पर लागू होगा।

attr_protected तरीका भी काम करता है, लेकिन मुझे यह भ्रमित लगता है (क्योंकि यह पहली नज़र में जो कहता है उसके विपरीत है)।

+0

बस स्पष्ट होने के लिए, 'config.active_record.whitelist_attributes = true' रेल के हाल के संस्करणों में application.rb में असम्बद्ध प्रतीत होता है, इसलिए मॉडल में इसे अक्षम करने के लिए attr_protected() को कॉल करना अब एक आवश्यकता है यदि बड़े-असाइनमेंट वांछित है सभी विशेषताओं के लिए। – jordanpg

13

मैं इस दृष्टिकोण अधिक पठनीय पाया है:

class User < ActiveRecord::Base 
    attr_accessible *column_names 
end 

बदलने config.active_record.whitelist_attributes सभी को प्रभावित करेगा

+0

धन्यवाद, यह मेरे लिए काम कर रहा है, खाली 'attr_protected' काम नहीं कर रहा था। एक चेतावनी, इस दृष्टिकोण को मॉडल लोड होने से पहले डीबी कनेक्शन स्थापित करने की आवश्यकता है। – shakerlxxv

+1

हाँ, एक ही मुद्दा था। _ attr_protected' _ome_ मॉडलों पर _some_ विशेषताओं के लिए काम किया लेकिन उन सभी के लिए नहीं। इसका उपयोग बाकी के लिए काम किया। – jwadsack

+0

मेरे लिए वही – Lichtamberg

संबंधित मुद्दे

 संबंधित मुद्दे