Как обрабатывать переменные среды в модели

#ruby-on-rails #ruby-on-rails-3

#ruby-on-rails #ruby-on-rails-3

Вопрос:

Я пытаюсь использовать Indextank для поиска.

В модели:

 class Post < ActiveRecord::Base

  tankit 'rails_3_demo' do
    indexes :title
    indexes :content
  end
  

Проблема с этим заключается в том, что все среды разработки / тестирования / промежуточной подготовки / prod используют один и тот же индекс. Как правильно убедиться, что среды используют правильный индекс env?

Спасибо,

Драгоценный камень: https://github.com/kidpollo/tanker

Комментарии:

1. это плагин / драгоценный камень? Можете ли вы дать ссылку на gem, чтобы мы могли просмотреть документы?

2. @Bryce, вот заправщик: github.com/kidpollo/tanker

Ответ №1:

Я собираюсь предположить, что под «использованием того же индекса» вы подразумеваете использование той же конечной точки API IndexTank.

Я думаю, что вам нужно сделать, это настроить разные конечные точки в IndexPoint для каждой среды, а затем настроить инициализатор в вашем стеке rails, чтобы указать на резервуар соответствующей среды. Похоже, что вы получаете 100 тысяч документов бесплатно в IndexTank, поэтому вы не должны сталкиваться с какими-либо платежными барьерами для этой настройки:

 #initializer
tanks = {
 "development" => 'http://:xxxxxxxxx@xxxxx.api.indextank.com',
 "test" => 'http://:xxxxxxxxx@xxxxx.api.indextank.com',
  ...
}

YourAppName::Application.config.index_tank_url = tanks[Rails.env]