From: Phillip Gawlowski Date: 2008-05-24T15:10:11+09:00 Subject: Re: Railsy Question about redefining ruby methods... -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Xeno Campanoli wrote: | Please this is a Ruby question, not, at least as the main focus, a rails | one, as you'll see if you read all the way through. | | Say, I've got a case in Rails where I want all my links to be prepended | with something like ~u1/rrsw/thingies so I can see | http://host/~u1/rrsw/thingies and http://host/~u2/rrsw/thingies instead | of http://host:9001/thingies and http://host:9002/thingies for a rails | tool that is used by some n projects. The rails part is apparently not | configurable, so I'm looking at redefining rails methods like link_to to | stick the path in there. This should be reasonable, but I'm stuck on a | ruby problem: You are aware that the port of the URL is not under Rails' nor Ruby's control per se (it is the domain of the webserver)? URLs are composed in (roughly) six parts: the [protocol]://[host]:[port]/[user_directory]/[directory/that/app/uses/or/rewrites]/[document_requested.suffix] Of those, only the directory and explicit document are under control by any given web application. Further, you can only have one server listen on any given port (though, one server can listen on an unlimited number of ports). What you want, can be achieved by using Apache + mod_rails. Uou can get the ~u1/~u2 part, by having different users on a, for example, UNIX based OS have their own web_root (or web_home, as it can be called, by convention), which would be reachable as host/~username/index.html (for example). Details of implementing such a setup can be found in various ways on, for example, . As far as overriding a Ruby method: You can usually achieve that by reopening the class, adding an alias for the old method, and defining your own implementation. Be careful, though, when you do. Where to do that so Rails picks up a change to link_to, I do not know (I suspect it is in ActiveSupport, though). - -- Phillip Gawlowski Twitter: twitter.com/cynicalryan Blog: http://justarubyist.blogspot.com ~ - You know you've been hacking too long when... ...your complexion has turned pale from being constantly irradiated by the monitor. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkg3sU8ACgkQbtAgaoJTgL/zGgCcD/x24SNTx8OFslWJ5fX5A5gq x8UAniPPYbQl1pPj/ytTyFeoxS5Hp7N7 =Z9nu -----END PGP SIGNATURE-----