Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > cgiライブラリ > CGI::QueryExtensionモジュール

module CGI::QueryExtension

クラスの継承リスト: CGI::QueryExtension

Abstract

インスタンスメソッド

self[key]

文字列 key に対応するパラメータを配列で返します。 key に対応するパラメータが見つからなかった場合は、nil を返します。(CGI#paramsと等価です)

フォームから入力された値や、URL に埋め込まれた QUERY_STRING のパース結果の取得などに使用します。

((<ruby 1.8 feature>)): 挙動が 1.6 以前の cgi と大きく変化しています ((- この挙動は流動的で、1.8.0, 1.8.1, 1.8.2 の挙動はすべて異なります(1.9.0の挙動は1.8.2と同様です)。 -)) 。メソッドの返り値は配列でなく、文字列 ((- 1.8.1 までは、正確に言うと String ではありません。 -)) になり、それに伴って cgi[key][0] のような書き方は廃止されました。また key に対応するパラメータが存在しなかった場合、nil ではなく "" を返すようになっています。 ruby 1.6 と同じ挙動を望む場合は、CGI#paramsを利用してください。

この結果、インターフェースがどう変わったのかについては、以下の例を参考にしてください。

# with ruby 1.6 ---------------------------
cgi = CGI.new
cgi['developer']     # => ["Matz"] (Array)
cgi['developer'][0]  # => "Matz" (String)
cgi['']              # => nil

# with ruby 1.8 ---------------------------
cgi = CGI.new
cgi['developer']     # => "Matz"
cgi['developer'][0]  # => obsolete(警告が出ます)
cgi['']              # => ""

cgi['developer'].is_a?(String) # => 1.8.1まではfalse、1.8.2以降はtrue

[[unknown:執筆者募集]]
accept

ENV['HTTP_ACCEPT']

accept_charset

ENV['HTTP_ACCEPT_CHARSET']

accept_encoding

ENV['HTTP_ACCEPT_ENCODING']

accept_language

ENV['HTTP_ACCEPT_LANGUAGE']

auth_type

ENV['AUTH_TYPE']

cache_control

ENV['HTTP_CACHE_CONTROL']

content_length

ENV['CONTENT_LENGTH']

content_type

ENV['CONTENT_TYPE']

cookies
cookies=(value)
from

ENV['HTTP_FROM']

gateway_interface

ENV['GATEWAY_INTERFACE']

has_key?(*args)
key?(*args)
include?(*args)
host

ENV['HTTP_HOST']

keys(*args)
multipart?

マルチパートフォームの場合にtrueが返ります。

例:
cgi = CGI.new
if cgi.multipart?
  field1=cgi['field1'].read
else
  field1=cgi['field1']
end
negotiate

ENV['HTTP_NEGOTIATE']

params

パラメータを格納したハッシュを返します。

フォームから入力された値や、URLに埋め込まれた QUERY_STRING のパース結果の取得などに使用します。

cgi = CGI.new
cgi.params['developer']     # => ["Matz"] (Array)
cgi.params['developer'][0]  # => "Matz"
cgi.params['']              # => nil
params=(hash)
path_info

ENV['PATH_INFO']

path_translated

ENV['PATH_TRANSLATED']

pragma

ENV['HTTP_PRAGMA']

query_string

ENV['QUERY_STRING']

raw_cookie

ENV["HTTP_COOKIE"]

raw_cookie2

ENV["HTTP_COOKIE2"]

referer

ENV['HTTP_REFERER']

remote_addr

ENV['REMOTE_ADDR']

remote_host

ENV['REMOTE_HOST']

remote_ident

ENV['REMOTE_IDENT']

remote_user

ENV['REMOTE_USER']

request_method

ENV['REQUEST_METHOD']

script_name

ENV['SCRIPT_NAME']

server_name

ENV['SERVER_NAME']

server_port

ENV['SERVER_PORT']

server_protocol

ENV['SERVER_PROTOCOL']

server_software

ENV['SERVER_SOFTWARE']

user_agent

ENV['HTTP_USER_AGENT']

Methods

Classes