accessing a Custom variable I put in development.rb - how can I do this?

Hi,

I just quite seem to find out how to access a custom environment variable I put into “development.rb”, “test.rb” etc

Can someone give me a pointer for this please.

Tks
Greg

(bump)

Still trying to understand default Rails behavior here so would be great if someone can clarify. That is how is one supposed to put one’s own custom variables in the environment.rb/developmnet.rb type files and then get access to them.

In the environment.rb file the last line is “# Include your application configuration below”. However I’ve tried adding my own variables here and not been able to see them later within ENV. That is:

a) add the following to the bottom of environment.rb
gregs.test1=“1*************************************************”

b) go “ruby script/console”

c) issue “ENV” but I can’t see this custom environment variable being loaded.

Can any clarify the default means of setting custom environment variables in rails (I’ve been googling but to no avail yet)

Tks
Greg

Hi Greg,

To define an environment variable, use ENV['NAME'] = value (where
value must be a string).

So doing ENV['test1'] = 'blah' works for me.

Regards,
George.

Tks George - but do you/someone else know whether it is possible to put your environment variables directly within the rails environment files? (e.g. environment.rb, development.rb etc)

Greg

Yes, it works for me if I stick it in environment.rb or
environments/development.rb, on a fresh rails app, in both rails 1.1.6
and 1.2.2. Note that you must assign a String. A Fixnum, etc. won't
cut it (you should see an error when you start script/console if you
get this wrong).

Is there a reason you need environment variable, BTW? Because it
might be easier to just use a constant, e.g., "FOO = 1", as well.

Cheers,
George.

> Tks George - but do you/someone else know whether it is possible to put your
> environment variables directly within the rails environment files? (e.g.
> environment.rb, development.rb etc)
>
> Greg

Yes, it works for me if I stick it in environment.rb or
environments/development.rb, on a fresh rails app, in both rails 1.1.6
and 1.2.2. Note that you must assign a String. A Fixnum, etc. won't
cut it (you should see an error when you start script/console if you
get this wrong).

Is there a reason you need environment variable, BTW? Because it
might be easier to just use a constant, e.g., "FOO = 1", as well.

I should also add that my experiments were on Linux. I'm not sure if
other OSs might behave differently.

basically wanted a mechanism to have a external URL used by the application to be different in development George. Are you putting your entry in environment.rb right at the bottom of the file, i.e. outside the Rails::Initializer.run
area?

I’m assuming that after I have put, myvar = ‘this is it’, at the bottom of the environment.rb file and restart, that if I go “ruby script/console” then ENV I should be able to see it, or ENV[‘myvar’]…but at this stage this isn’t working for me. I’m on Mac OS X.

Any ideas why this isn’t working George/anyone?

Thanks again
Greg

doh! saw the errors of my ways - had been treating the environment.rb like a java properties file - I see now it’s actually ruby and I had to put the “ENV[‘myvar’]=…” into the file, not “‘myvar’ = ‘…’” - thanks George