3

我目前正在尝试在我的多租户 Rails 4 应用程序中使用 searchkick,该应用程序使用 Apartment 和 pgSQL 模式来处理租户。但是,我无法让 searchkick 工作。我不确定我做错了什么,但我想可能是当我重新索引时,它只在一个模式上重新索引。

我在想我需要循环浏览每个模式,但我不确定如何在公寓中进行。他们似乎为迁移自动执行此操作,但我试图让它与 searchkick 一起使用。我想从 searchkick 编辑以下 rake 任务:

require 'rake'

namespace :searchkick do 

    task :reindex => :environment do
    if ENV["CLASS"]
      klass = ENV["CLASS"].constantize rescue nil
      if klass
        klass.reindex
      else
        abort "Could not find class: #{ENV["CLASS"]}"
      end
    else
      abort "USAGE: rake searchkick:reindex CLASS=Product"
    end
  end

end

如果您有任何建议,请告诉我

4

1 回答 1

0

我能够弄清楚。我必须执行以下操作并将 Apartment 任务添加到此处:

require 'rake'
require 'apartment/migrator'

namespace :searchkick do 
    task :reindex => :environment do
        tenants.each do |tenant|

            Apartment::Tenant.switch(tenant)
            p 'switched'
        if ENV["CLASS"]
          klass = ENV["CLASS"].constantize rescue nil
          if klass
            klass.reindex
          else
            abort "Could not find class: #{ENV["CLASS"]}"
          end
        else
          abort "USAGE: rake searchkick:reindex CLASS=Product"
        end
    end
    end

end
于 2014-08-15T02:46:10.927 回答