/ / सिनात्रा मार्ग मॉड्यूलर ऐप में काम नहीं कर रहे हैं? - रूबी, सिनात्रा

सिनात्रा मार्ग मॉड्यूलर ऐप में काम नहीं कर रहे हैं? - रूबी, सिनात्रा

मैंने क्लासिक सिनात्रा एप्लिकेशन को मॉड्यूलर एप्लिकेशन में परिवर्तित कर दिया है। अब अचानक मेरा 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 के लिए 1

The 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