To Wukerplank’s answer, you can also put the connection details in database.yml like usual with a name like so:
log_database_production:
adapter: mysql
host: other_host
username: logmein
password: supersecret
database: logs
Then in your special model:
class AccessLog < ActiveRecord::Base
establish_connection "log_database_#{Rails.env}".to_sym
end
To keep those pesky credentials from being in your application code.
Edit: If you want to reuse this connection in multiple models, you should create a new abstract class and inherit from it, because connections are tightly coupled to classes (as explained here, here, and here), and new connections will be created for each class.
If that is the case, set things up like so:
class LogDatabase < ActiveRecord::Base
self.abstract_class = true
establish_connection "log_database_#{Rails.env}".to_sym
end
class AccessLog < LogDatabase
end
class CheckoutLog < LogDatabase
end