如何处理模型中的环境变量

时间:2011-05-23 17:32:10

标签: ruby-on-rails ruby-on-rails-3

我正在尝试使用Indextank进行搜索。

在模型中:

class Post < ActiveRecord::Base

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

问题在于dev / test / staging / prod环境都使用相同的索引。确保环境使用正确的env索引的正确方法是什么?

谢谢,

GEM:https://github.com/kidpollo/tanker

1 个答案:

答案 0 :(得分:1)

我将假设“使用相同的索引”意味着使用相同的IndexTank API端点。

我认为您需要做的是在IndexPoint为每个环境设置不同的端点,然后在rails堆栈中设置初始化程序以指向适当的环境槽。看起来您在IndexTank免费获得100k文档,因此您不应该遇到任何支付障碍:

#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]