में attr_accessible फ़ील्ड का परीक्षण कैसे करें, इसलिए हम अपने रेल 3.2 एप के माध्यम से कई क्षेत्रों में attr_accessible
और attr_protected
सेट अप कर रहे हैं। अभी के लिए हम वास्तव में यह सुनिश्चित करने के लिए परीक्षण नहीं करते कि ये फ़ील्ड सुरक्षित हैं।आरएसपीसी
तो मैं कुछ जवाब गूगल का फैसला किया और इस समाधान पर ठोकर खाई:
RSpec::Matchers.define :be_accessible do |attribute|
match do |response|
response.send("#{attribute}=", :foo)
response.send("#{attribute}").eql? :foo
end
description { "be accessible :#{attribute}" }
failure_message_for_should { ":#{attribute} should be accessible" }
failure_message_for_should_not { ":#{attribute} should not be accessible" }
end
लेकिन इस समाधान केवल परीक्षण के अगर विधि प्रतिक्रिया दे रहा है देखने के लिए। मुझे जो चाहिए वह परीक्षण करने के लिए एक तरीका है कि गुणों को बड़े पैमाने पर असाइन किया जा सकता है और नहीं किया जा सकता है। मैं ईमानदारी से वाक्यविन्यास
it { should_not be_accessible :field_name }
it { should be_accessible :some_field }
क्या किसी के पास इस समस्या का बेहतर समाधान है?
[Permitters] उपयोग करने पर विचार (https://github.com/permitters/permitters) या [मजबूत पैरामीटर्स] (https://github.com/rails/strong_parameters) बड़े पैमाने पर असाइनमेंट सुरक्षा (attr_accessible + attr_protected) के बजाय, जो रेल 4 में जा रहा है। –
पहले से ही उत्पादन में इसका उपयोग कर रहा है। यह तब से कुछ था जब ForbiddenAttributes मुख्यधारा नहीं था। – WarmWaffles