繁体   English   中英

pg_search的rails搜索表单

[英]rails search form with pg_search

在这里,我想针对不同型号的用户提供一份搜索表单

结果应该在不同的局部视图中看到。

搜索控制器就像

class SearchController < ApplicationController
  def index
    @users = User.search(params[:query])
    @posts = Post.search(params[:query])
  end
end 

这样我就可以使用partial查看用户和帖子的结果

我正在使用pg_search,所以模型就像

class User < ActiveRecord::Base
  include PgSearch
  pg_search_scope :search, :against => [:name]
end


class Post < ActiveRecord::Base
  include PgSearch
  pg_search_scope :search, :against => [:content]
end

我的问题是如何获取:query表单搜索表单? 并将:query传递给搜索控制器?

  <%= form_tag(XXXXX_path, method: "get") do %>
    <%= text_field_tag :search, nil, placeholder: "Search ...", class: "form-control" %>
    <%= submit_tag "", style: "display: none;" %>
  <% end %>

上面的代码中什么是XXXXX,以使控制器获取:query? 因为我不想拥有其他搜索模型

还是有其他方法可以获取搜索表单?

这取决于您要叫XXXXX名称。 我建议将其search_path 但是,您必须进行一些更改才能将:query传递给控制器​​。

routes.rb文件中,您可能会routes.rb类似问题(根据代码检查链接,了解其他路由需求):

get '/search' => 'search#index'

在您看来,您可以将param命名为:search ,但是可以,但是在您的控制器中,您必须引用params[:search]才能使它可用。

如果您想将参数称为:query ,则必须更改text_field_tag以使其匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM