Chris Parrish wrote:
> Nevermind. I wound up going the route of alias_method_chain-ing
> SiteController's #show_page method. It makes things more tightly
> coupled to Radiant but it's also closer to how it'd be if built-in.
>
> If anybody else out there is already using alias_method_chain on this
> method in your extension, let me know. I'd sure love to avoid a 20 car
> pileup there if a user has multiple extensions installed.
>
> -Chris
Could you simply add a before filter in that controller instead? before
filters can stack up without overriding other filters in other
extensions. And seems cleaner than an alias_method_chain
before_filter :reload_routes, :only => :show
private
def reload_routes
ActionController::Routing::Routes.reload!
end
And yes, since rake loads up its own rails process, it wont work for
this. The only way I can see send a message like this into a rails form
outside is via http. So your rake task would send a request to
"http://mysite.com/reload_routes" which would do what you want.
But that gets hairy too. Lets say you have multiple mongrels, 1 out of
4 got that request, and reloads its routes. All other mongrel don't
have their routes reloaded.
In general, I don't think you can use rake very well to modify the state
of an already running rails process. You definitely want a hook in your
extension to load the routes as needed. And remember that just because
you updated the routes in the rails process that handled the admin
requested route change doesn't mean its been updated in the other
processes. This is a bug that would work fine in development mode with
a single process, and suddenly cause weird issues in a more distrubed
production deployment.
--
Posted via http://www.ruby-forum.com/.
_______________________________________________
Radiant mailing list
Post: [email protected]
Search: http://radiantcms.org/mailing-list/search/
Site: http://lists.radiantcms.org/mailman/listinfo/radiant