2009-07-24 14 views
150

जब मेरे पास एक विशिष्ट कार्यवाही है कि मैं प्रामाणिकता टोकन की जांच नहीं करना चाहता हूं, तो मैं रेल को यह जांचने के लिए कैसे कहूं?रेल में विशिष्ट कार्रवाइयों के लिए प्रामाणिकता टोकन को मैं कैसे अनदेखा कर सकता हूं?

+6

+1, दुख की बात है कि आप अपने स्वयं के प्रश्न का उत्तर देने के लिए नीचे आ गए हैं, जो पूरी तरह से वैध है। –

+15

एएच। मैंने इसे यहां रखा क्योंकि मैंने इसके लिए पूरी खोज की थी और मुझे जवाब खोजने में कठिनाई थी - मैंने सोचा कि यह कुछ अन्य लोगों की मदद कर सकता है। मुझे बैक अप देने के लिए धन्यवाद। विशिष्ट नियंत्रक और विशिष्ट क्रिया के लिए – edebill

उत्तर

201

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

protect_from_forgery :only => [:update, :delete, :create] 
#or 
protect_from_forgery :except => [:update, :delete, :create] 

एक पूरे नियंत्रक के लिए, आप कर सकते हैं:

skip_before_action :verify_authenticity_token 

और रेल 3.x की आवश्यकता है:

skip_before_filter :verify_authenticity_token 
+0

thx का उपयोग करें: skip_before_filter: verify_authenticity_token,: only =>: my_unprotected_action। मैं यहां जवाब पाने के लिए आया था: क्या यह एक भयानक विचार है? मैं ऐसा इसलिए कर रहा हूं क्योंकि AJAX प्रतिक्रिया मेरे सत्र को खाती है। – clyfe

+0

को दस्तावेज करने के लिए – Danny

+29

रेल के लिए 4 'skip_before_action: verify_authenticity_token' का उपयोग करें, [API दस्तावेज़] देखें (http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html) – amoebe

23

में Rails4skip_before_actionexcept या 01 के साथ आप skip_before_action का उपयोग करते हैं।

class UsersController < ApplicationController 
    skip_before_action :verify_authenticity_token, only: [:create] 
    skip_before_action :some_custom_action, except: [:new] 

    def new 
    # code 
    end 

    def create 
    # code 
    end 

    protected 
    def some_custom_action 
    # code 
    end 
end 
संबंधित मुद्दे