मेरे पास एक ही मुद्दा था लेकिन उन पृष्ठों के साथ जो पृष्ठ कैश थे। पेज बासी प्रामाणिकता टोकन और सभी क्रियाओं के साथ बफर हो गए, जहां वे फर्जी प्रयासों के रूप में पहचाने गए पोस्ट / पुट / डिलीट के तरीकों का उपयोग करते हैं। उपयोगकर्ता को त्रुटि (422 Unprocessable Entity) वापस कर दी गई।
रेल 3 के लिए समाधान:
जोड़ें:
skip_before_filter :verify_authenticity_token
या "सागिवो" के रूप में रेल 4 में बताया गया है:
skip_before_action :verify_authenticity_token
उन पृष्ठों पर जो कैशिंग करते हैं।
@Toobulkeh टिप्पणी की के रूप में इस पर एक जोखिम नहीं है :index
, :show
कार्यों, लेकिन यह का उपयोग कर सावधान रहना :put
, :post
कार्रवाई।
उदाहरण के लिए:
caches_page :index, :show
skip_before_filter :verify_authenticity_token, :only => [:index, :show]
संदर्भ: http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html
नोट barlop द्वारा जोड़ा गया- रेल्स 4.2 को deprecated Skip_before_filter के पक्ष में Skip_before_action https://guides.rubyonrails.org/4_2_release_notes.html "डाक्यूमेंट्स से हटा दिया गया है। उनका उपयोग * _action" के पक्ष में हतोत्साहित करता है। तरीकों का परिवार "
के लिए रेल 6 ( "के रूप में collimarco" ने कहा) आप उपयोग कर सकते हैं skip_forgery_protection
और यह एक REST API कि सत्र डेटा का उपयोग नहीं करता के लिए उपयोग करने के लिए सुरक्षित है।