提交 13a78367 编写于 作者: J Joshua Peek

Install url helpers on module instance so they can be accessed

globally
上级 b652aa81
......@@ -65,7 +65,7 @@ def split_glob_param!(params)
# named routes.
class NamedRouteCollection #:nodoc:
include Enumerable
attr_reader :routes, :helpers
attr_reader :routes, :helpers, :module
def initialize
clear!
......@@ -241,21 +241,29 @@ def install_helpers(destinations = [ActionController::Base, ActionView::Base], r
def url_helpers
@url_helpers ||= begin
router = self
routes = self
Module.new do
helpers = Module.new do
extend ActiveSupport::Concern
include UrlFor
@routes = routes
class << self
delegate :url_for, :to => '@routes'
end
extend routes.named_routes.module
# ROUTES TODO: install_helpers isn't great... can we make a module with the stuff that
# we can include?
# Yes plz - JP
included do
router.install_helpers(self)
routes.install_helpers(self)
end
define_method(:_router) { router }
define_method(:_router) { routes }
end
helpers
end
end
......
......@@ -193,6 +193,7 @@ def test_login
assert_equal '/login', url_for(:controller => 'sessions', :action => 'new', :only_path => true)
assert_equal 'http://rubyonrails.org/login', Routes.url_for(:controller => 'sessions', :action => 'create')
assert_equal 'http://rubyonrails.org/login', Routes.url_helpers.login_url
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册