Here\'s what I have so far.
You need only a server and a client library. So you go either with Blather or Strophe. Strophe is a JavaScript library and runs on the web browser, while blather is a rails library and runs on your server. When you want to create a web chat then I think you should go with Strophe.
I would have add a comment but unfortunately I don't have enough reputation yet.
If you want to do your chat client side, Strophe is recommended. If you want to store some conversations, you'll do it server-side, but not 'rails server'-side, you should do it 'xmpp server'-side : Ejabberd should store your old messages, romm topics or your contact list. It's his job.
Blather could be usefull to make rails communicate with your xmpp-server. Typical use cases could be making server to server communication, or creating an xmpp bot to interact in your chat : it could be asking questions for a game or managing the room to kick flooders.