2012-09-29 10 views
7

मेरे पास एक सहायक है जिसका उपयोग मैं एक फॉर्म उत्पन्न करने के लिए कर रहा हूं। पैरामीटर जो फॉर्म के फ़ील्ड जेनरेट करने के लिए उपयोग किए जाते हैं, सहायक में पास किए जाते हैं। मैं टेम्पलेट के बाहर ब्लॉक का उपयोग करने का तरीका नहीं समझ सकता।मैं एक सहायक के भीतर से form_tag का उपयोग कैसे करूं?

उदाहरण के लिए:

def generate_form(path, fields) 
    form_tag(path, method: :get) do 
     # what do I do in here? 
    end 
end 

जब मैं ब्लॉक के भीतर आंशिक प्रस्तुत करना, कुछ भी नहीं प्रदान की गई वेब पेज में दिखाई देता है। यदि मैं टैग्स (field_tag, text_field_tag, आदि) के साथ एक साथ जुड़ता हूं, तो पृष्ठ पर कच्चे HTML दिखाई देता है।

मैं रेल उपयोग कर रहा हूँ 3.1.0

उत्तर

11

रेल तत्व सहायकों सूत्र है, तो आप कर सकते हैं:

def generate_form(path, fields) 
    s = form_tag(path, method: :get) do 
    p = input_tag 
    p << submit_tag #(everything will be wrapped in form tag) 
    p #returns p from block 
    end 
    s.html_safe #returns s and avoids html escaping 
end 
+0

मैं सुरक्षित बफ़र्स से अनजान थे। क्या हो रहा था कि मैं स्ट्रिंग के साथ प्रारंभिक मान के रूप में इंजेक्शन कर रहा था: fields.inject ('')। मैंने इसे field.inject ('' html_safe) में बदल दिया और यह अब काम करता है। – mushroom

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

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