我正在尝试创建一个搜索表单,用户可以在其中输入文本,后端将运行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
有人可以提供一些帮助吗?