Establish a connection to another database only in a block?

后端 未结 7 1165
情书的邮戳
情书的邮戳 2020-12-29 10:17

In a rails application, I have this code in pure ruby :

class LinkCreator
  attr_accessor :animal

  def initialize(animal:)
    @animal = animal
  end

  de         


        
7条回答
  •  渐次进展
    2020-12-29 10:48

    I use environment variables taken from Heroku's DATABASE_URL to connect to different databases:

    class Database
      def self.development!
        ActiveRecord::Base.establish_connection(:development)
      end
    
      def self.production!
        ActiveRecord::Base.establish_connection(ENV['PRODUCTION_DATABASE'])
      end
    
      def self.staging!
        ActiveRecord::Base.establish_connection(ENV['STAGING_DATABASE'])
      end
    end
    

    e.g.:

    Database.production!; puts User.all.map(&:name)
    Database.staging!; puts User.all.map(&:name)
    

提交回复
热议问题