Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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 rails表单标签重定向到/资源_Ruby On Rails_Forms - Fatal编程技术网

Ruby on rails rails表单标签重定向到/资源

Ruby on rails rails表单标签重定向到/资源,ruby-on-rails,forms,Ruby On Rails,Forms,我想知道你为什么这么做 <%= form_tag( { :action => "/search", :method => "get" }, :class => "span4" ) do %> ... <% end %> 我注意到这是因为搜索。如果我把代码改写成 <%= form_tag( { :action => "search", :method => "get" }, :class => "span4" ) do %>

我想知道你为什么这么做

<%= form_tag( { :action => "/search", :method => "get" }, :class => "span4" ) do %>
...
<% end %>
我注意到这是因为搜索。如果我把代码改写成

<%= form_tag( { :action => "search", :method => "get" }, :class => "span4" ) do %>
...
<% end %>
“search”,:method=>“get”},:class=>“span4”)do%>
...
如果没有/search,它将正确地调用我的控制器方法。有人能解释一下原因吗?谢谢:“:action”应该有一个“action”的名称,例如:“create”、“update”或“destroy”

这里“/search”不是一个名称,而是一个不合法的“url”

顺便说一句,我建议您使用xx_url而不是{:action=>“”,:controller=>“”},例如

“获取”%>

#您在config/routes.rb中定义了“搜索路径”
“获取”%>
该“:action”应包含“action”的名称,例如:“创建”、“更新”或“销毁”

这里“/search”不是一个名称,而是一个不合法的“url”

顺便说一句,我建议您使用xx_url而不是{:action=>“”,:controller=>“”},例如

“获取”%>

#您在config/routes.rb中定义了“搜索路径”
“获取”%>

这将实现您的意思:

<%= form_tag( "/search", :method => "get" , :class => "span4" ) do %>
...
<% end %>
“get”,:class=>“span4”)do%>
...
如果
form_tag
的第一个参数是您给定的散列,它会在幕后传递给
url_for
,这将
:action
解释为反向映射路由的操作部分

因为您(我猜)只想传递一个普通URL,所以只需将它作为字符串传递给第一个参数


当然,更多信息:)

这将实现您的意思:

<%= form_tag( "/search", :method => "get" , :class => "span4" ) do %>
...
<% end %>
“get”,:class=>“span4”)do%>
...
如果
form_tag
的第一个参数是您给定的散列,它会在幕后传递给
url_for
,这将
:action
解释为反向映射路由的操作部分

因为您(我猜)只想传递一个普通URL,所以只需将它作为字符串传递给第一个参数


当然还有更多信息:)

非常感谢!我想它可能会更好,只是改变搜索路径,因为它做什么,我想牙床这么多!我想最好还是换成搜索路径,因为它也能满足我的需求
<%= form_tag "/search", :method => "get" %>  
# you defined "search_path" in config/routes.rb
<%= form_tag search_path, :method => "get" %>
<%= form_tag( "/search", :method => "get" , :class => "span4" ) do %>
...
<% end %>