URI :: InvalidURIError плохой URI (не URI?): Использование Tanker - PullRequest
1 голос
/ 26 марта 2012

Я использую IndexTank и гем Tanker для реализации полнотекстового поиска в моем приложении Rails, но я получаю ошибку (URI :: InvalidURIError bad URI (не является URI?)) При попытке использовать метод search_tank в моем индексе.

Это метод контроллера, где я получаю ошибку

def search
  if params[:query]
    @posts = Post.search_tank(params[:query], :page => 1, :per_page => 10)
  else
    @posts = []
  end
end

Это часть моей модели Post, где я определяю индекс

if ENV['RAILS_ENV'] === "production"
    index = 'idx'
else
    index = 'test'
end

tankit index do
    indexes :title
    indexes :description
end

# define the callbacks to update or delete the index
after_save :update_tank_indexes
after_destroy :delete_tank_indexes

Search_tankМетод работает, когда я тестирую его в консоли rails.Другие сообщения, кажется, предполагают, что это может быть связано с маршрутами, установленными в config / rout.rb.Все, что я задал, это вот что.

root :to => 'public#index'
match ':controller(/:action(/:id))(.:format)'

Я искал ответ, но я немного озадачен.Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 26 марта 2012

Это исключение URI.parse, это означает, что какой-то URL-адрес неправильно указан или сгенерирован.Вы уверены, что настроили конфигурацию правильно?Из файла readme на https://github.com/kidpollo/tanker вам нужно сделать:

Инициализация

Если вы используете Rails, config / initializer / tanker.rb - хорошее место для этого:

YourAppName::Application.config.index_tank_url = 'http://:xxxxxxxxx@xxxxx.api.indextank.com'

Если вы не используете рельсы, вы можете поместить это куда-нибудь до загрузки своих моделей

Tanker.configuration = {:url => 'http://:xxxxxxxxx@xxxxx.api.indextank.com' }

Возможно, вы захотите иметь более изящную конфигурациюв зависимости от вашей среды.Обязательно скопируйте и вставьте правильный URL-адрес, предоставленный информационной панелью IndexTank

Если вы уже сделали это, пожалуйста, проверьте URL-адреса на наличие опечаток.

...