Hi,
not sure what and *why* are you trying to do so, but looks like you
might want to use some simple metaprogramming to create model classes.
For example:
all_servers = Server.find(:all)
all_servers.each do |s|
h = {:host => "localhost",
:adapter => "jdbc",
:dialect => "sybase",
:autocommit => false,
:driver => "com.sybase.jdbc3.jdbc.SybDataSource",
:url => "jdbc:sybase:Tds:#{s.host):#{s.port}/LOE_DB",
:username => "username",
:password => "password"}
eval("class #{Server.name} < ActiveRecord::Base\
end")
eval(Server.name).establish_connection(h)
end
A hack but should work more or less...
On 13 Sty, 11:46, Valentino Lun <[email protected]>
wrote:
> Dear all
>
> I have a rails project which database connection is defined in
> database.yml. There is a table call "servers" which have about 40
> records, which is a collection of database setting (i.e. Server.name,
> Server.port, Server.host)
>
> I know the way to establish multiple connection as below...
>
> class A < ActiveRecord::Base
> end
> A.establish_connection(a) # a is the database config
>
> class B < ActiveRecord::Base
> end
> B.establish_connection(b) # b is the database config
>
> # repeat and repeat.......
>
> However, how can I do this in a block? I have no idea to do so...Please
> give me some light.
>
> all_servers = Server.find(:all)
> all_servers.each do |s|
> h = {:host => "localhost",
> :adapter => "jdbc",
> :dialect => "sybase",
> :autocommit => false,
> :driver => "com.sybase.jdbc3.jdbc.SybDataSource",
> :url => "jdbc:sybase:Tds:#{s.host):#{s.port}/LOE_DB",
> :username => "username",
> :password => "password"}
>
> # How to I write code to establish 40 connections using active record
> here??
> # class "Server.name" < ActiveRecord::Base
> # end
> # "Server.name".establish_connection(h)
>
> end
>
> Million thanks
> Valentino
> --
> Posted viahttp://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---