【问题标题】:I am trying to send values using GET method, but Rails insist to call the POST method我正在尝试使用 GET 方法发送值,但 Rails 坚持调用 POST 方法
【发布时间】:2012-07-06 19:55:12
【问题描述】:

我不明白为什么会这样。这是我的表格:

<%= form_tag controller: :static_pages, action: :index, method: :get do %>
  <%= text_field_tag :search_text %>
  <%= submit_tag "Search", id: :search_button %>
<% end %>

但是,它不是通过 URL 发送 search_text 的值,而是调用 post 方法并在 URL 中发送 method=get

http://localhost:3000/static_pages/index?method=get

知道原因吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 forms post get


    【解决方案1】:

    它将method: :get 解释为表单应该转到的路径的一部分,而不是form_tag 本身的附加选项。将controller: :static_pages, action: :index 包装在一个散列中,并在方法调用中添加括号。然后它应该工作:

    <%= form_tag( {controller: :static_pages, action: :index}, method: :get ) do %>
    

    【讨论】:

    • 哎呀!是的,解析器假定方法调用后面的花括号是块而不是散列。将方法调用包装在括号中应该可以解决它。我已经更新了我的答案。
    猜你喜欢
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多