मैंने क्लासिक सिनात्रा एप्लिकेशन को मॉड्यूलर एप्लिकेशन में परिवर्तित कर दिया है। अब अचानक मेरा put
, patch
तथा delete
मार्गों ने काम करना बंद कर दिया। get
तथा post
बढ़िया कार्य करना। क्या क्लासिक से अलग मॉड्यूलर ऐप में काम करने के लिए मुझे कुछ करने की ज़रूरत है?
%form{action: "/addsomething", method: "post"}
%input{type: "hidden", name: "_method", value: "put"}
जब मैं उपर्युक्त मार्गों में से किसी एक तक पहुंचने का प्रयास करता हूं तो मुझे अब 404 मिलते हैं।
require "sinatra/base"
class MyClass < Sinatra::Base
put "/addsomething" do
"HELLO WORLD!"
end
get "/hello" do
"hello world"
end
end
उत्तर:
उत्तर № 1 के लिए 1The method_override
सेटिंग (जो की अनुमति देता है _method
HTTP विधि को ओवरराइड करने के लिए फ़ील्ड) है मॉड्यूलर शैली में डिफ़ॉल्ट रूप से false. आप के साथ इसे सक्षम करने की आवश्यकता:
enable :method_override
जवाब के लिए 0 № 2
आप अभी भी सिनात्रा से इनहेरिट कर सकते हैं:: मॉड्यूलर शैली में आवेदन डिफ़ॉल्ट सेटिंग्स रखने के लिए:
require "sinatra/base"
class MyClass < Sinatra::Application
put "/addsomething" do
"HELLO WORLD!"
end
get "/hello" do
"hello world"
end
end