1

努力得到一个“你的意思是什么?” 与我的 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)

和文章.rb:

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

2 回答 2

2

你可以try

<%= @articles.try(:suggestions) %>
于 2015-07-19T02:05:58.783 回答
1

值得注意的是一种不依赖于Object#try

<% if @articles.respond_to?(:suggestions) %>
    <%= @articles.suggestions %>
<% end %>
于 2015-10-30T21:11:57.057 回答