2011-06-27 14 views
7

में टेम्पलेट फ़ंक्शन के लिए पासिंग विकल्प मैं थोर टेम्पलेट एक्शन में ईआरबी टेम्पलेटिंग इंजन के विकल्पों को पास करने का एक तरीका ढूंढ रहा हूं।थोर

मैं बंडलर CLI स्रोत जहां Thors टेम्पलेट कार्रवाई इस तरह किया जा रहा है पर ठोकर खाई:

opts = {:name => name, 
    :constant_name => constant_name, 
    :constant_array => constant_array, 
    :author_name => author_name, 
    :author_email => author_email 
} 

template(File.join("newgem/Gemfile.tt"), 
      File.join(target, "Gemfile"), 
      opts) 

लेकिन जब मैं अपने थोर कार्यों में इस तरह विकल्प जोड़ वे ERB द्वारा नहीं पाए जाते हैं, मैं केवल उपयोग कर सकते हैं टेम्पलेट में चर सेट करने के लिए मेरे थोर क्लास में तर्क और कार्य।

मुझे कोई सुराग नहीं है कि रूबी में बाध्यकारी कैसे काम करते हैं, शायद ईआरबी को बाध्यकारी के माध्यम से एक गुंजाइश पारित करने का एक तरीका है।

+0

आपने अपनी थोर फ़ाइल में किस कोड का प्रयास किया जो काम नहीं करता था? – Dogbert

+0

मैंने उपरोक्त कोड की प्रतिलिपि बनाई है और यह पास विकल्पों को पकड़ नहीं पाया है। – devboy

उत्तर

10

इंस्टेंस चर का उपयोग करके, इसे काम करना चाहिए।

@name = name 
template("source","target") 

मेरे टेम्पलेट इस तरह दिखता है:

<test><%= @name %></test> 

यह मेरे लिए काम करता है। मैंने विशिष्ट मूल्यों को पारित करने की कोशिश नहीं की है।

11

मैं इस जवाब देने के लिए किसी भी प्रलेखन नहीं मिल सकता है, लेकिन Bundler CLI के स्रोत के माध्यम से पढ़ने, ऐसा लगता है कि अगर आप को संदर्भित कर रहा गया: टेम्पलेट के अंदर author_email पैरामीटर,

Author email: <%= config[:author_email] %> 

काम करता है ।

+2

यह मेरे लिए भी काम करता है। 'Opts' के पास 'टेम्पलेट' को पास किया गया है जिसे एआरबी टेम्पलेट में 'config' कहा जाता है। – Kris