2015-07-19 168 views
1

努力获取'你的意思是?功能与我的rails 4应用程序集成。我正在使用searchsearch与elasticsearch。Rails 4 Searchkick建议错误

我终于得到了您的意思是否当用户拼错的查询与此代码在视图中显示:

<%= @articles.suggestions %> 

然而,当没有任何建议,我得到undefined method 'suggestions'

我是否需要在控制器中定义建议?我试图只显示建议时,他们目前使用此:

<% if @articles.suggestions.present? %> 
    <%= @articles.suggestions %> 
<% end %> 

但获得相同的错误。什么是最好的方式去做这件事? searchkick还是很新的,所以我很感激任何帮助。

这里是在articles_controller我的搜索方法:

@articles = Article.search(params[:q], misspellings: {edit_distance: 1}, suggest: true, fields: ["specific^10", "title", "aka", "category", "tags_name", "nutritiontable"], boost_where: {specific: :exact}, page: params[:page], per_page: 12) 

和article.rb:

searchkick autocomplete: ['specific'], suggest: ['specific'], conversions: "conversions" 

回答

2

您可以try

<%= @articles.try(:suggestions) %> 
1

值得注意的方法不依赖于Object#try

<% if @articles.respond_to?(:suggestions) %> 
    <%= @articles.suggestions %> 
<% end %>