RESTful реализация поиска по нескольким моделям с Sunspot Solr Search через SearchControllerЭто верно? - PullRequest
2 голосов
/ 16 декабря 2011

Итак, я использую SearchController для управления поиском по всему сайту (пользовательские запросы выполняются полнотекстовым поиском в двух разных моделях), и он работает на сервере разработки rails, но не работает на Heroku.Я подозреваю, что это означает, что я совершаю какую-то логическую ошибку MVC или RESTful, потому что я думаю, что у меня была эта проблема раньше с heroku и моим сервером localhost, где последний был более снисходительным с моим кодом.Должен ли я использовать какой-либо маршрут коллекции или члена?

Контроллер поиска:

  def index
    @search = Post.search do
      fulltext params[:search]
    end
    @posts = @search.results
    @search = Group.search do
      fulltext params[:search]
    end
    @groups = @search.results
  end

Маршрут:

resources :search, :only => [:index]

Форма поиска (в HAML):

-form_tag '/search', :method => :get do
        =text_field_tag :search, params[:search], :id => 'searchfield'
        =submit_tag 'search',:name => nil, :id => 'searchbutton'

Heroku Журналы от неудачного действия:

2011-12-16T04:05:20+00:00 app[web.1]: Started GET "/search?utf8=%E2%9C%93&search=integer" for 
68.6.74.167 at 2011-12-15 20:05:20 -0800
2011-12-16T04:05:20+00:00 app[web.1]:   Processing by SearchController#index as HTML
2011-12-16T04:05:20+00:00 app[web.1]:   Parameters: {"utf8"=>"✓", "search"=>"integer"}
2011-12-16T04:05:23+00:00 heroku[router]: GET stormy-robot-3215.heroku.com/search dyno=web.1 queue=0 wait=0ms service=3030ms status=500 bytes=728
2011-12-16T04:05:23+00:00 app[web.1]: Completed   in 3022ms
2011-12-16T04:05:23+00:00 app[web.1]: 
2011-12-16T04:05:23+00:00 app[web.1]: Errno::ECONNREFUSED (Connection refused - connect(2)):
2011-12-16T04:05:23+00:00 app[web.1]:   app/controllers/search_controller.rb:3:in `index'
2011-12-16T04:05:23+00:00 app[web.1]: 
2011-12-16T04:05:23+00:00 app[web.1]: 

Спасибо затвоя помощь.Дайте мне знать, если я должен дать больше информации

1 Ответ

0 голосов
/ 16 декабря 2011

Ваш код в порядке, единственная проблема в том, что ваше приложение Heroku не может подключиться ни к одному хосту Solr.

Если вы используете аддон Websolr в Heroku, вам следует открыть заявку в службу поддержки, посколькудолжен работать.В противном случае вы должны запустить это в консоли heroku:

Sunspot.config.solr.url

Если это указывает на "http://127.0.0.1:8983/solr" или подобное, то это ваша проблема. Вам нужно указать на какой-то интернет-доступный сервер Solr.

...