2012年1月9日月曜日

[Rails3] 現在のURLを取得(request オブジェクト)

実行環境:
ruby 1.9.3
Rails 3.1.3
Rails アプリケーションの中で現在処理中(アクセス中)の URL を取得するには request オブジェクトを参照します。

プロトコル名(http://)を含めたフル URL を取得する。
request.url                  # http://example.com/users/search?q=hoge&p=1

URL のホスト名以降の文字列を取得する。
request.request_uri          # /users/search?q=hoge&p=1

URL のホスト名以降のパス文字列を取得する。クエリ文字列(?以降)は含まない。
request.path_info            # /users/search


requestオブジェクトについて
URL 以外にも request オブジェクトを使うと HTTP_REQUEST に入っている様々な情報を取得できます。
request.auth_type            # AUTH_TYPE
request.content_length       # CONTENT_LENGTH
request.content_type         # CONTENT_TYPE
request.gateway_interface    # GATEWAY_INTERFACE
request.path_info            # PATH_INFO
request.path_translated      # PATH_TRANSLATED
request.query_string         # QUERY_STRING
request.remote_addr          # REMOTE_ADDR
request.remote_host          # REMOTE_HOST
request.remote_ident         # REMOTE_IDENT
request.remote_user          # REMOTE_USER
request.request_method       # REQUEST_METHOD
request.script_name          # SCRIPT_NAME
request.server_name          # SERVER_NAME
request.server_port          # SERVER_PORT
request.server_protocol      # SERVER_PROTOCOL
request.server_software      # SERVER_SOFTWARE
request.accept               # HTTP_ACCEPT
request.accept_charset       # HTTP_ACCEPT_CHARSET
request.accept_encoding      # HTTP_ACCEPT_ENCODING
request.accept_language      # HTTP_ACCEPT_LANGUAGE
request.cache_control        # HTTP_CACHE_CONTROL
request.from                 # HTTP_FROM
request.host                 # HTTP_HOST
request.negotiate            # HTTP_NEGOTIATE
request.pragma               # HTTP_PRAGMA
request.referer              # HTTP_REFERER
request.user_agent           # HTTP_USER_AGENT
request.raw_cookie           # HTTP_COOKIE
request.raw_cookie2          # HTTP_COOKIE2
request.request_uri          # REQUEST_URI

0 件のコメント:

コメントを投稿