A Rails app can connect to SQL Server 2005 Express. The main issue of which to be aware, though, is that Express installs as a named instance by default. Therefore, in your database.yml file, you must provide both the server name (your machine name) and the named instance (SQLEXPRESS by default). For example:
host: DBI:ADO:Provider=SQLOLEDB;Data Source=MACHINE_NAME\SQLEXPRESS;
Note that I had to use uppercase for the machine\instance. Furthermore, neither localhost (uppercase or lowercase) nor 127.0.0.1 would suffice in place of my machine name. This is unfortunate if multiple people will be working on the project, as each of their machine names will be unique.
Therefore, you should consider installing Express as a default (unnamed) instance. If you’ve already installed as a named instance, you’ll have to reinstall as a default instance. Then you can just use localhost in place of machine\instance for development and test.
host: DBI:ADO:Provider=SQLOLEDB;Data Source=localhost;
Almost forgot… I did all of this on Windows XP Pro, as I don’t have access to Vista. You’ll just have to give it a try and let us know how it goes.