PaperTrail和Octopus - 指定版本表的连接

时间:2014-02-26 19:28:00

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

到目前为止,我可以在控制台中执行此操作以使其正常工作:

PaperTrail::Version.table_exists?
=> false
PaperTrail::Version.octopus_establish_connection Octopus.config[Rails.env][:ms]
PaperTrail::Version.table_exists?
=> true

我在哪里以及如何投放:

PaperTrail::Version.octopus_establish_connection Octopus.config[Rails.env][:ms]

我试图将它放在app/models/papertrail_version.rbconfig/initializers/papertrail.rb中,但是在模型中没有加载,并且在初始化程序中它失败了,因为Octopus尚未捆绑,我想我可以将它捆绑在初始化程序中,关于如何尽可能简单的建议。

更新

我尝试使用初始化程序但没有运气:

require 'octopus'
PaperTrail::Version.octopus_establish_connection Octopus.config[Rails.env][:ms]

尝试运行rails console时我得到了这个:

/vagrant/config/initializers/papertrail_version.rb:3:in 
`<top (required)>': undefined method `[]' for nil:NilClass (NoMethodError)

1 个答案:

答案 0 :(得分:0)

app/models/paper_trail/version.rb

module PaperTrail
  class Version < ActiveRecord::Base
    octopus_establish_connection Octopus.config[::Rails.env][:ms]
  end
end

注意我必须在::

中使用Rails.env

更新

由于Rails加载进程require Rails.root.join 'app/models/paper_trail/version'

,我不得不在初始化程序中要求文件