Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么提交使用form_标签而不使用form_标签?_Ruby On Rails - Fatal编程技术网

Ruby on rails 为什么提交使用form_标签而不使用form_标签?

Ruby on rails 为什么提交使用form_标签而不使用form_标签?,ruby-on-rails,Ruby On Rails,我有一个与gem pg_搜索相关联的form_标记表单,该表单与一个form_标记一起工作,如下所示,目前在纯html中不使用ajax,但是当我尝试以与表单_相同的方式工作时,提交没有通过。 你知道为什么吗? 顺便问一下,您是否知道帮助器“url:search\u path”的form\u标记中的等价物,它是以表单\u注释的? 多谢各位 1. Le form_tag <%= form_tag new_product_association_path, method: :get do %&

我有一个与gem pg_搜索相关联的form_标记表单,该表单与一个form_标记一起工作,如下所示,目前在纯html中不使用ajax,但是当我尝试以与表单_相同的方式工作时,提交没有通过。 你知道为什么吗?
顺便问一下,您是否知道帮助器“url:search\u path”的form\u标记中的等价物,它是以表单\u注释的? 多谢各位

1. Le form_tag

<%= form_tag new_product_association_path, method: :get do %>
  <%= text_field_tag :query, params[:query], id: "text_field", class: "form-control", placeholder: "Find a product" %>
  <%= submit_tag "Search", class: "btn btn-primary", id: "submit-search"%>
<% end %>


2. le form_for

<%= form_for product_associations_url, as: :get do |f| %>
  <%= f.text_field params[:query], id: "text_field" %>
  <%= f.submit "Search", class: "btn btn-primary", id: "submit-search" %>
<% end %>
1。表格标签
2.表格

Rails提供了几种为表单创建HTML的方法

  • form\u tag
    :这将以最原始的形式生成HTML。您可以指定各种属性,生成的表单没有Rails魔法

  • form\u for
    :这是一种创建与资源(例如产品)关联的表单的方法。必须传入要创建/更新的对象。因此,您为编写表单的方式是不正确的。还有一个问题(打字错误)不是使用
    作为指定方法,而是应该使用
    方法

  • 表单_的基本用法:

    在控制器中:

    @product=product.new

    在以下观点中:

    <%= form_for @product do |f| %>
      ...
    <% end %>
    
    
    ...
    
    问题可能是帮助程序希望记录作为其第一个参数,而不是URL。我建议切换到允许URL使用的位置

    而且这个用法也是无效的。您仍应提供输入字段的名称(
    :query

    <%= form_with url: product_associations_url, as: :get do |f| %>
      <%= f.text_field :query, value: params[:query], id: "text_field" %>
      ...
    <% end %>
    
    
    ...
    

    示例用法也可以在.

    “您知道在表单中注释的助手“url:search\u path”的表单标记中的等效项吗?”签名是
    form\u标记(url\u for\u options={},options={},&block)
    。因此,它是第一个序数参数,可以是字符串,也可以是传递给
    url\u的散列。你在这里问的问题也很不清楚-你面临的确切问题是什么,复制它的步骤是什么?如果这个答案不能解决你的问题,我想看看为
    form_标记
    form_with
    helper生成的HTML。