簡體   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