1

「もしかして?」の取得に取り組んでいます。Rails 4 アプリと統合された機能。私はelasticsearchでsearchkickを使用しています。

ユーザーがビューで次のコードを使用してクエリのスペルを間違えたときに表示することを意味するものを最終的に取得しました。

<%= @articles.suggestions %>

ただし、提案がない場合は、undefined method 'suggestions'

コントローラーで提案を定義する必要がありますか? これを使用して、提案が存在する場合にのみ提案を表示しようとしました:

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

しかし、同じエラーが発生します。これについて最善の方法は何ですか?searchkick はまだ非常に新しいので、助けていただければ幸いです。

article_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"
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 に答える