Sinatra使用name =“_ method”创建删除http请求。到底是怎么回事?

时间:2014-12-26 22:15:49

标签: sinatra

我读到了这个: http://guides.rubyonrails.org/form_helpers.html#how-do-forms-with-patch-put-or-delete-methods-work-questionmark

我仍然有这个html表单在幕后工作的问题。

<form action='/<%= idea.id %>' method='POST'>
      <input type="hidden" name="_method" value="DELETE">
      <input type='submit' value="delete"/>
</form>

Sinatra是否专门研究<input>名称字段,并且那个_method对Sinatra和Rails内部意味着什么?如果是这样,幕后发生了什么?

1 个答案:

答案 0 :(得分:2)

是 - 正如Sinatra Readme中所述:

Use _method magic to allow put/delete forms in browsers that don't support it.

“魔术”实际上是在Rack中间件中实现的,请参阅'lib/rack/methodoverride.rb'

中的代码