elasticsearch-rails gem中的动态index_name

时间:2014-07-23 09:02:58

标签: ruby-on-rails elasticsearch rubygems

我在我的rails应用中使用elasticsearch-rails gem。我想动态设置索引名称。在模型中我这样做了:

index_name {Account.current_account.subdomain}

目前宝石中没有支持这样做。这是gem

中定义的index_name方法

naming.rb

# TODO: Dynamic names a la Tire -- `Article.index_name { "articles-#{Time.now.year}" }`
#
def index_name name=nil
    @index_name = name || @index_name || self.model_name.collection.gsub(/\//, '-')
end

我怎样才能使这个工作?感谢

2 个答案:

答案 0 :(得分:1)

此功能has been inplemented here并发布到rubygems。

答案 1 :(得分:0)

所以你尝试过类似的东西而且它不起作用?因为它对我有用吗?

class Account < ActiveRecord::Base
  include Elasticsearch::Model

  index_name(Account.current_account.subdomain) # without the curly braces

  mapping do
     ...
  end
end