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']
cookiescookies=(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']