我已经将经典的Sinatra应用程序转换为模块化应用程序。现在突然我的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
答案 0 :(得分:1)
method_override
设置(允许_method
字段覆盖HTTP方法)为false by default in modular style。您需要启用它:
enable :method_override
答案 1 :(得分:0)
您仍然可以从模块化样式继承Sinatra :: Application以保留默认设置:
require 'sinatra/base'
class MyClass < Sinatra::Application
put '/addsomething' do
'HELLO WORLD!'
end
get '/hello' do
'hello world'
end
end