# ri > ActionController::UrlFor

## [ActionController::UrlFor](https://www.chedong.com/phpMan.php/perldoc/ActionController%3A%3AUrlFor/markdown)

------------------------------------------------------------------------
## Includes:
[AbstractController::UrlFor](https://www.chedong.com/phpMan.php/perldoc/AbstractController%3A%3AUrlFor/markdown) (from /home/chedong/.local/share/rdoc)

------------------------------------------------------------------------
## Extended by:
[ActiveSupport::Concern](https://www.chedong.com/phpMan.php/perldoc/ActiveSupport%3A%3AConcern/markdown) (from /home/chedong/.local/share/rdoc)

(from /home/chedong/.local/share/rdoc)
------------------------------------------------------------------------
Includes url_for into the host class. The class has to provide a
RouteSet by implementing the _routes method. Otherwise, an exception
will be raised.

In addition to [AbstractController::UrlFor](https://www.chedong.com/phpMan.php/perldoc/AbstractController%3A%3AUrlFor/markdown), this module accesses the HTTP
layer to define URL options like the host. In order to do so, this
module requires the host class to implement env which needs to be
Rack-compatible and request which is either an instance of
[ActionDispatch::Request](https://www.chedong.com/phpMan.php/perldoc/ActionDispatch%3A%3ARequest/markdown) or an object that responds to the host,
optional_port, protocol and symbolized_path_parameter methods.

  class RootUrl
    include [ActionController::UrlFor](https://www.chedong.com/phpMan.php/perldoc/ActionController%3A%3AUrlFor/markdown)
    include Rails.application.routes.url_helpers

    delegate :env, :request, to: :controller

    def initialize(controller)
      @controller = controller
      @url        = root_path # named route from the application.
    end
  end
------------------------------------------------------------------------
## Instance methods:

  url_options

