2016-09-12 11 views
0

SearchKickを使用してアプリケーションにハイライト表示を実装しようとしていますが、Railsは間違ったオブジェクトタイプを取得しています。Searchkickハイライト:[]:配列の未定義メソッド `with_details '

マイコントローラ:

def search 

    @articles = Article.text_search(params[:q]) 
    ... 

マイビュー:

- articles.with_details.each do |article, details| 
    ... 
    p.mb-15.excerpt 
    = details[:highlight][:content] 

マイモデル:

searchkick highlight: [:content] 

def self.text_search(query) 
    if query.present? 
    search(
      query, 
      fields: 
       [ 
       "title^10", 
       "h1^5", 
       "meta_description", 
       "content" 
       ], 
      limit: 5, 
      highlight: { 
      fields: {content: 
       {fragment_size: 100} 
      } 
      } 
     ) 
    else 
    [] 
    end 
end 

答えて

0

私はあなたに、この他のブランチから自分のTEXT_SEARCH結果として[]を取得していることを推測あなたのモデル:

だから、多分あなたは、このようなエラーを逃れるためにあなたのビューとコントローラにこのような何かを行うことができます
else 
    [] 
end 

コントローラー:

articles = Article.text_search(params[:q]) 
@detailed_articles = articles.empty? ? [] : articles.with_details 

ビュー:

- @detailed_articles.each do |article, details| 
    ... 
    p.mb-15.excerpt 
    = details[:highlight][:content] 
関連する問題