aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/application.rb
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2010-07-07 18:38:14 +0200
committerPiotr Sarnacki <drogus@gmail.com>2010-09-03 22:59:05 +0200
commit177a4bd5b7f903030a100f9b5092b1fa62c7c748 (patch)
tree2ca5c7111a952e141bc0baa984876857c9ec9648 /railties/lib/rails/application.rb
parent451c9942bb493190d5673c1b55be7506056db13b (diff)
downloadrails-177a4bd5b7f903030a100f9b5092b1fa62c7c748.tar.gz
rails-177a4bd5b7f903030a100f9b5092b1fa62c7c748.tar.bz2
rails-177a4bd5b7f903030a100f9b5092b1fa62c7c748.zip
Fix url generation for mounted Engine
I added integration tests for generating urls in Engine and application and tweaked Engines to fully cooparate with new router's behavior: * Rails.application now sets ORIGINAL_SCRIPT_NAME * Rails.application also sets its routes as env['action_dispatch.parent_routes'] * Engine implements responds_to? class method to respond to all the instance methods, like #routes
Diffstat (limited to 'railties/lib/rails/application.rb')
-rw-r--r--railties/lib/rails/application.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb
index 4ea828c549..3dba5f78a2 100644
--- a/railties/lib/rails/application.rb
+++ b/railties/lib/rails/application.rb
@@ -121,14 +121,20 @@ module Rails
alias :build_middleware_stack :app
def call(env)
+ if Rails.application == self
+ env["ORIGINAL_SCRIPT_NAME"] = env["SCRIPT_NAME"]
+ env["action_dispatch.parent_routes"] = routes
+ end
+
+ env["action_dispatch.routes"] = routes
app.call(env.reverse_merge!(env_defaults))
end
def env_defaults
- @env_defaults ||= super.merge({
+ @env_defaults ||= {
"action_dispatch.parameter_filter" => config.filter_parameters,
"action_dispatch.secret_token" => config.secret_token
- })
+ }
end
def initializers