"posts"}。 这是 for_tag 的代码: -6ren">
gpt4 book ai didi

ruby-on-rails - form_tag 路由不正确

转载 作者:太空宇宙 更新时间:2023-11-03 16:09:03 24 4
gpt4 key购买 nike

我试图让表单标签在 rails 3 中工作,但我不断收到路由错误:

没有路由匹配 {:action=>"search", :controller=>"posts"}。

这是 for_tag 的代码:

 <%= form_tag search_post_path, method: :get do %>
<br />
<fieldset>
<legend>Search</legend>
<%= text_field_tag :search, params[:search], :id => 'search_field' %>
<%= submit_tag "Search", :name => nil %>
<%= link_to_function "Clear", "$('search_field').clear()" %>
</fieldset>
<br />
<% end %>

我的 posts_controller 中有一个名为 search 的方法。这是放在我的 routes.rb 文件中的内容:

 post 'search' => 'posts#search'

resources :posts do
member do
post 'search'
get 'search'
end
end

我觉得我已经尝试了我的路由文件中的所有内容,但没有任何效果。有一次我让 for_for 出现,但当我点击提交按钮时,我得到了方法“搜索”的 NoMethodError。

最佳答案

你的路由“search”在一个成员上,所以匹配的 URL 是/posts/:id/search。但是您没有提供 ID,因此出现错误。您应该将搜索路径放在一个集合 block 中,如下所示:

resources :posts do
collection do
get 'search'
end
end

因此匹配的 URL 将是/posts/search。

关于ruby-on-rails - form_tag 路由不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7676766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com