我在服务器 A 中使用 Vanity。但是对于仪表板,我想在服务器 B 上显示它。
完成的步骤:
- 在 Gemfile 中添加了 gem 'vanity'
- 添加 vanity.yml(使用与服务器 A 相同的数据库)
- 添加了虚荣控制器
但是,当我转到 localhost:3000/vanity 时,我现在看到的只是一个页面,其中只有“由 Vanity 生成”。
我还需要添加实验文件吗?但我尽可能不想将它们复制到服务器 B,因为它已经在服务器 A 中。我只需要在服务器 B 中显示仪表板。
我在服务器 A 中使用 Vanity。但是对于仪表板,我想在服务器 B 上显示它。
完成的步骤:
但是,当我转到 localhost:3000/vanity 时,我现在看到的只是一个页面,其中只有“由 Vanity 生成”。
我还需要添加实验文件吗?但我尽可能不想将它们复制到服务器 B,因为它已经在服务器 A 中。我只需要在服务器 B 中显示仪表板。
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
这会从数据库中提取可用信息(因此没有替代名称,它只有实验文件中替代的索引号),并做出一些假设,但似乎加载了数据。