2010-10-21 12 views
16

के भीतर sanitize का उपयोग कर मैं नियंत्रक के भीतर sanitize पर कॉल करने का प्रयास कर रहा हूं। मैं इस त्रुटि मिल रही है,रेल नियंत्रक

class FooController < ApplicationController 
    include ActionView::Helpers::SanitizeHelper 
    # ... 
end 

हालांकि: यहाँ मैं क्या करने की कोशिश की

undefined method `white_list_sanitizer' for FooController:Class 

मैं चारों ओर खोज की है और लोगों पर स्विच करने की सिफारिश की ActionView::Helpers शामिल करने के लिए लाइन में शामिल हैं, लेकिन यह है कि ऐसा गलती से हुआ परिणाम:

undefined method `url_for' for nil:NilClass 

sanitize पर कॉल करने का सही तरीका क्या है? मैं रेल 2.3.5 का उपयोग कर रहा हूँ।

+1

आप इस आवश्यकता क्यों है? –

+1

उदाहरण के लिए, मार्कडाउन सामग्री से HTML उत्पन्न करने के लिए इसे RDiscount में पास करने से पहले उपयोगकर्ता इनपुट को स्वच्छ करें। – pmc255

उत्तर

-4

मुझे यकीन नहीं है कि आप यहां क्या करने की कोशिश कर रहे हैं लेकिन मुझे लगभग 100% निश्चित है कि यह नियंत्रक में नहीं है।

यदि आप इसे डीबी में सहेजने से पहले एक विशेषता को sanitize करना चाहते हैं, तो पहले कॉलबैक को बचाने के साथ मॉडल में ऐसा करें।

अन्यथा, दृश्य टेम्पलेट में स्वच्छता या सहायक देखें।

+5

संभावना है कि वह एक दृश्य का उपयोग किए बिना AJAX का उपयोग करके पाठ प्रस्तुत करने का प्रयास कर रहा था। –

35

आप कार्रवाई विधि के अंदर इस ActionController::Base.helpers उपयोग कर सकते हैं:

class SiteController < ApplicationController 
    def index 
    render :text => ActionController::Base.helpers.sanitize('<b>bold</b>') 
    end 
end 

आशा इस मदद करता है

+0

आपने मुझे बस इतना समय बचाया, धन्यवाद! – d11wtq

+0

बहुत बहुत धन्यवाद! सिर्फ रिकॉर्ड (और Google) के लिए: यह एक सहायक विधि से सैनिटाइज़र का उपयोग करने का एक सही समाधान है जिसे नियंत्रक से कहा जाता है। –

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