my rails app has a local database where all info is stored, but it
often syncs with a ''master'' database that has different
connection
info.. i have that all set up in my app and it works great. problem is
with testing.
for example when i create a person it also creates them on the master
database. in test environment it still connects to the same database,
which is not what i''m looking for. I have something like this in my app
to allow a model to connect to the master db:
class Master < ActiveRecord::Base
self.abstract_class = true
establish_connection(
:adapter => "mysql",
:database => "master",
:host => "xxx.xxx.xxx",
:port => xxxx,
:username => "user",
:password => "pass")
end
all ''sync tables'' inherit from Master instead of
ActiveRecord.. so what
i need is something that can ask "is environment = testing ?" and if
so
give different connection info for a testing Master DB. what''s the best
way to do this?
i was thinking having a similar class called FakeMaster.. but how do i
make my sync tables decide which one to use on the fly?
can i do this? :
if RAILS_ENV == "test"
class Synctable < FakeMaster
end
else
class Synctable < Master
end
end
also keep in mind that even if the above works i would like to stay dry
and not duplicate the class bodies above. would this work? db_to_use (RAILS_ENV
== "test" ? ''FakeMaster'' :
''Master'')
and then:
eval "class Synctable < #{db_to_use}"
.... body goes here...
end
i somehow doubt that that is gonna work.
thanks in advance,
Stuart
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---