Rails 4和pg_search GEM

时间:2015-01-20 23:33:45

标签: ruby-on-rails ruby postgresql ruby-on-rails-4 pg-search

我正在尝试创建一个搜索表单,用户可以在其中输入文本,后端将运行PgSearch.multisearch以便从客户和帐户模型中检索值。

我根据pg_search gem's页面设置了两个模型。当我在rails控制台中运行PgSearch.multisearch(" foo")时,它会按预期返回结果。

我的问题是如何在我的视图中显示所有相关结果? (似乎无法解决这个问题)

目前我的控制器看起来像这样(params [:search] [:token] ==" foo"):

def create
   if @search.validate(params[:search])
      @pg_search_documents = PgSearch.multisearch(params[:search][:token])
      respond_with(@pg_search_documents, :location => search_index_path)
    else
      respond_with(@search, :location => search_index_path)
    end
end

在我看来,我试过了:

- @pg_search_documents.each do |pg_search_document|
  = pg_search_document.searchable.id

我继续收到错误说明"未定义的方法`每个'为零:NilClass"

我想要实现的是在我看来显示所有结果。

更新2

在控制台中运行PgSearch.multisearch(" foo"):

#<ActiveRecord::Relation [#<PgSearch::Document id: 6, content: "foo", searchable_id: 10, searchable_type: "Customer", created_at: "2015-01-20 22:29:31", updated_at: "2015-01-20 22:29:31">]>

当我在浏览器中将PgSearch.multisearch(params [:search] [:token])渲染为文本时,它只显示&#34;#&#34;。

我认为这是ActiveRecord :: Relation的正常行为,因为当我尝试在控制台与浏览器中输出AR范围的结果时会出现相同的输出结构。

更新3

enter image description here

有人可以提供一些帮助吗?

0 个答案:

没有答案