1

我正在使用搜索表单,并希望在 ruby​​ on rails 表单中使用 GET 请求。我用这样的东西

1) 在视图中

form_tag(:action => "actionxyz", :method => "get") 

2) 在路线中

get 'actionxyz', :controller => :controllerabc

检查请求时,会看到以下内容

<form accept-charset="UTF-8" action="/actionxyz?method=get" method="post"><div style="margin:0;padding:0;display:inline">

在我看到的网址中还有更多信息,/actionxyz?method=get而不是我提供的搜索字符串。提供的搜索字符串出现在 POST 数据中。这是否意味着 rails 没有使用 GET 方法,或者我的解释是错误的。请澄清 ..

4

2 回答 2

5

它将方法解释get为表单应该去的路径的一部分,而不是form_tag. 所以,你必须隔离它:

form_tag( {:action => "actionxyz"}, :method => "get") do

要不就

form_tag url_path, method: :get do #where url_path is your route
于 2013-02-11T11:53:19.060 回答
2

form_tag 只需要 URL:

form_tag '/actionxyz', :method => "get"
于 2013-02-11T11:16:42.883 回答