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 %>