[LRUG] requiring one rails environment from another

Alex MacCaw maccman at gmail.com
Mon Apr 12 16:47:24 PDT 2010


You need to eval the production file with the current context, like so:

        config = configuration # Need local config variable
        eval(IO.read(path), binding, path)

Alex

> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Mon, 12 Apr 2010 17:07:44 +0100
> From: Tim Cowlishaw <tim at timcowlishaw.co.uk>
> To: LRUG LRUG <chat at lrug.org>
> Subject: [LRUG] requiring one rails environment from another
> Message-ID: <2097FF98-1CDD-46A9-847E-DA9060CDBBED at timcowlishaw.co.uk>
> Content-Type: text/plain; charset=us-ascii
> 
> Hey there chaps,
> 
> I'm in the middle of setting up a CI server for our office and have run into what seems like a slight gotcha.
> 
> Basically, i need to set up a seperate rails environment called something like "CI", so that the CI server can have its own mysql credentials, rather than requiring all users to user the same. So, i set this up in database.yml, and create a ci.rb file in config/environments that contains only a "require File.dirname(__FILE__)+ '/test.rb'" to load in the regular test environment. However, as the code in the required file isn't evaled in the same context as where the 'require' happens - it fails with "undefined local variable or method `config' for main:Object" on the line "config.cache_classes = true", the first line in the required 'test.rb'.
> 
> Clearly I'm going about this the wrong way - has anyone else any bright ideas about allowing two distinct environments to share configuration, without resorting to putting it all in environment.rb?
> 
> Cheers,
> 
> Tim
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lrug.org/pipermail/chat-lrug.org/attachments/20100413/9d34a3bf/attachment-0003.html>


More information about the Chat mailing list