Rails - 为表单中的ajax搜索创建路由

时间:2014-09-01 11:44:21

标签: ruby-on-rails ajax search ruby-on-rails-4

我有一个叫做贡献的类,属于用户。 /contributions/new.html.erb我包含以下代码,用于搜索用户是否有新的贡献。

<%= text_field_tag :search, params[:search], id: "search" %>
<%= link_to "Search", contributions_path, id: "search_submit" %>
  • 路径错误。

在routes.rb中我有

resources :contributions do
   get :search, on: :collection
end

和rake路线包括

search_contributions GET    /contributions/search(.:format)   contributions#search

在application.js.erb中我有 -

$(document).on("click", "a#search_submit", function(){
   $.ajax({
      url: $(this).attr("href"),
      data: {query: $("#search").val() },
      success: function(data) {
        alert("Hello! I am an alert box!!");
      }
   });
});

在视图中调用搜索的正确路径是什么?

2 个答案:

答案 0 :(得分:1)

contributions_path指向index的{​​{1}},但是,您需要将其指向contributions_controller.rb search

您需要更新contributions_controller.rb

link_to

<%= link_to "Search", contributions_path, id: "search_submit" %>

现在它将指向<%= link_to "Search", search_contributions_path, id: "search_submit" %> 而不是contributions#search

答案 1 :(得分:0)

rake routes为您显示正确的名称:

search_contributions GET    /contributions/search(.:format)   contributions#search

所以,应该是search_contributions_path