0

我在服务器 A 中使用 Vanity。但是对于仪表板,我想在服务器 B 上显示它。

完成的步骤:

  1. 在 Gemfile 中添加了 gem 'vanity'
  2. 添加 vanity.yml(使用与服务器 A 相同的数据库)
  3. 添加了虚荣控制器

但是,当我转到 localhost:3000/vanity 时,我现在看到的只是一个页面,其中只有“由 Vanity 生成”。

我还需要添加实验文件吗?但我尽可能不想将它们复制到服务器 B,因为它已经在服务器 A 中。我只需要在服务器 B 中显示仪表板。

在此处输入图像描述

4

1 回答 1

0

Vanity 确实使用实验文件作为替代值之类的事实来源,因此复制这些文件将是最直接的方法。(也许 git 子模块可以帮助将它们保持在一个位置?)

如果有点 hacky 没问题,这可能适用于只读应用程序:

# config/initializers/vanity.rb
::Rails.configuration.after_initialize do
  Vanity::Adapters::ActiveRecordAdapter::VanityExperiment.all.each do |experiment|
    id = experiment.experiment_id
    experiment = Vanity::Experiment::AbTest.new(Vanity.playground, id, id.humanize)
    experiment.default(Vanity::Adapters::ActiveRecordAdapter::VanityParticipant.where(experiment_id: id).first.seen)
    used_alternatives = Vanity::Adapters::ActiveRecordAdapter::VanityParticipant.where(experiment_id: id).pluck(:seen).uniq
    if used_alternatives.size >= 2
      # If we have at least 2 alternatives, set them, otherwise use the default true/false
      experiment.alternatives(*used_alternatives)
    end
    Vanity.playground.experiments[id] = experiment
  end
end

这会从数据库中提取可用信息(因此没有替代名称,它只有实验文件中替代的索引号),并做出一些假设,但似乎加载了数据。

于 2016-06-11T20:57:43.363 回答