2

私の最初の Rails アプリを構築し、Heroku で Elasticsearch を実行する際に問題が発生しました。

ローカルは完璧に機能します。

Heroku では検索ページを開くことができますが、検索を実行しようとすると以下のエラーが表示されます。

Heroku のログには次のように表示されます。

2015-05-18T12:05:15.969673+00:00 app[web.1]: ActionView::Template::Error ([404] {"error":"IndexMissingException[[homes] missing]","status":404}):
2015-05-18T12:05:15.969674+00:00 app[web.1]:      9: <% end %>
2015-05-18T12:05:15.969676+00:00 app[web.1]:     10:  
2015-05-18T12:05:15.969677+00:00 app[web.1]:     11: <ul>
2015-05-18T12:05:15.969678+00:00 app[web.1]:     12:   <% @homes.each do |home| %>
2015-05-18T12:05:15.969679+00:00 app[web.1]:     13:     <li>
2015-05-18T12:05:15.969680+00:00 app[web.1]:     14:       <h3>
2015-05-18T12:05:15.969682+00:00 app[web.1]:     15:         <%= link_to home.name, controller: "homes", action: "show", id: home._id%>
2015-05-18T12:05:15.969683+00:00 app[web.1]:   app/views/search/search.html.erb:12:in `_app_views_search_search_html_erb___1261310385184340853_69929402195100'

宝石:

gem 'elasticsearch-model'
gem 'elasticsearch-rails'
gem 'bonsai-elasticsearch-rails', '~> 0.0.4'

検索コントローラー:

class SearchController < ApplicationController
    def search
      if params[:q].nil?
        @homes = []
      else
        @homes = Home.search params[:q]
      end
    end 
end

検索ビュー:

<h1>Homes Search</h1>

<%= form_for search_path, method: :get do |f| %>
  <p>
    <%= f.label "Search for" %>
    <%= text_field_tag :q, params[:q] %>
    <%= submit_tag "Go", name: nil %>
  </p>
<% end %>

<ul>
  <% @homes.each do |home| %>
    <li>
      <h3>
        <%= link_to home.name, controller: "homes", action: "show", id: home._id%>
      </h3>
    </li>
  <% end %>
</ul>

どんな提案でも大歓迎です!

4

1 に答える 1