同一个haml页面上有两个form_tag

时间:2017-06-06 14:15:00

标签: ruby-on-rails

的routes.rb

 put '/', to: 'search#admin_action', as: 'admin_action'
 root 'search#index

search_controller.rb

class SearchController < ApplicationController

  def index
  end

  def admin_action
    redirect_to root_path
  end
end

我在index.html.haml页面下有两个表单 ...

= form_tag({action:'index'}, {method: :get})

...

= submit_tag 'Search'

...

= form_tag({url: admin_action_path}, {method: :put})

...

= submit_tag 'Action'

在这种情况下,所有两个提交按钮都将由索引方法处理(永远不会调用admin_action)。实际上,对于所有下面的提交按钮,始终从第一个表单开始操作。在erb文件中,也许我可以使用一些&lt;%end%&gt;分割这些表单,但如何在haml文件中执行此操作。

1 个答案:

答案 0 :(得分:0)

Form_tag (在 haml 下)不会在最终源中生成</form> form_for 运行正常。要获得正确的最终来源, form_tag 必须与 do 一起使用。所以正确的第一行将是

= form_tag({action:'index'}, {method: :get}) do