2011-05-24 16 views
6

में आइटम की सूची निर्दिष्ट करें मैं yml फ़ाइल में संसाधन प्राधिकरण जानकारी निर्दिष्ट करना चाहता हूं। व्यवस्थापक एक कर्मचारी बना सकता है और केवल कंपनी देख सकता है।रेल: yml

मैंने इस फ़ाइल को लोड करने के लिए YAML :: लोड विधि का उपयोग किया।

यदि मैं उपयोग करता हूं - एकाधिक अनुमति (क्रिया, संसाधन जोड़ी) के लिए प्रतीक यह पार्सिंग त्रुटि देता है। अगर मैं हटा देता हूं - प्रतीक तो यह केवल पहली क्रिया संसाधन जोड़ी चुनता है। मुझे लगता है कि भार विधि पार्सिंग के दौरान 1 स्पेस इंडेंटेशन की अपेक्षा करती है और यदि मैं निर्दिष्ट करता हूं - तो एक स्पेस इंडेंटेशन स्थिति का उल्लंघन किया जाता है जो त्रुटि का कारण है। इसके लिए संभावित समाधान क्या है।

अगर मैं का उपयोग करें - प्रतीक लिस्टिंग

admin: 
- action: create 
    resource: employee 
- action: show 
    resource: company 

अगर मैं का उपयोग नहीं करते के लिए - प्रतीक लिस्टिंग

admin: 
action: create 
resource: employee 
action: show 
resource: company 
+0

मेरे कामकाजी उदाहरण पर एक नज़र डालें। मुझे लगता है कि '1 स्पेस इंडेंटेशन' की आपकी धारणा गलत है और त्रुटि उत्पन्न कर रही है। – mkro

उत्तर

4

यकीन नहीं अगर यह मदद करता है के लिए है, लेकिन जब मैं पहला उदाहरण लोड करने का प्रयास, इससे मेरा काम बनता है। शायद इंडेंटेशन सही नहीं है?

वैसे भी, यह यहाँ काम करता है:

"YAML"

कुछ = YAML.load_file ("admin.yaml") की आवश्यकता होती है

अरे हाँ, मुझे admin.yaml कि काम करता है शामिल कर सकते हैं मेरे लिए:

 
admin: 
    - action: create 
    resource: employee 
    - action: show 
    resource: company 
3

आप मुसीबत YAML पैदा हो रही है, मैं कंसोल में एक वस्तु के निर्माण, तो यह YAML को बदलने कि यह दिखता देखने के लिए कोशिश करेंगे। उदाहरण के लिए:

test = { :admin => [ 
      {:action => "create", :resource => "employee"}, 
      {:action => "show", :resource => "company"} 
      ] } 

test.to_yaml 
=> "--- \n:admin: \n- :action: create\n :resource: employee\n- :action: show\n :resource: company\n" 

तुम भी उत्पादन यह एक फाइल करने के लिए अगर यह आपके जीवन को आसान बनाता कर सकते हैं:

File.open('test.yaml', 'w') do |out| 
    out.write(test.to_yaml) 
end 

कौन सा पैदावार:

--- 
:admin: 
- :action: create 
    :resource: employee 
- :action: show 
    :resource: company 

मैं काफी तुम क्या मिलान नहीं किया है ऊपर है, क्योंकि मैंने चाबियों के लिए प्रतीकों का उपयोग किया था, लेकिन इससे आपको उम्मीद करनी चाहिए।

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

  • कोई संबंधित समस्या नहीं^_^