【Ruby】RubyでCGI
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/04(金) 12:57ID:c4hRtzGY関連リンクは>>2-3
0274nobodyさん
03/07/20 18:39ID:MTCslCJPservlet+JSPより好きなので、age。
0275nobodyさん
03/07/21 05:15ID:???0276nobodyさん
03/07/21 14:33ID:???今回の流れで色々と複雑な事情があるのだなあと知りました。
陰ながら応援sage。
0277nobodyさん
03/07/21 23:32ID:???<% か <%= のどっちかだけ。
0278nobodyさん
03/07/26 01:58ID:aoovL48qRubyに標準で添付されているCGI.rbというライブラリでは、
タグを生成するときの大文字は変更できないんでしょうか?
最近ではxmlの関係もあって小文字で出力したいと思うんですが・・・
例)大文字 → <HTML><H1>
小文字 → <html><h1>
0279nobodyさん
03/07/26 02:32ID:???RubyでPerlでいう↓のやつできませんか?
print << 'EOS';
<html>
<body>パパの特盛</body>
</html>
EOS
>>278
タグの内部だけ?相当むずかしいんじゃないの?
タグ内のデータとかは大文字のままじゃないといけないんでしょ?
例:<INPUT NAME=OOMOJI> ⇒ <input name=OOMOJI>
たぶん、それはないと思う。変換機能がついたHTMLエディタとかどぞ
0280nobodyさん
03/07/26 03:02ID:???cgi.rb のかわりにこれの出力を require してみたらどうなる?
print(File.read($:.map{|i|i+"/cgi.rb"}.find{|i|File.readable?(i)}).gsub(/element\.upcase/,"element.downcase"))
>>279
×print << 'EOS';
○print <<'EOS';
0282278
03/07/27 00:09ID:zQkWZE8hご教示ありがとうございました。
結局、cgi.rbの中身を解析し、何箇所か修正を加えることで、
目的を達成することができたみたいです。
0283278
03/07/27 00:15ID:zQkWZE8h>>280さんの方法では、私の環境ではエラーになってしまいました。
0284nobodyさん
03/07/27 01:41ID:???0286nobodyさん
03/07/27 04:47ID:???0287279
03/07/27 17:47ID:???print "pl rb pl rb".gsub( /(pl|rb)/, ($1=='pl') ? 'Perl': 'Ruby')
これだと ($1=='pl') がかならず false になってしまい、
Ruby Ruby Ruby Ruby になってしまいます
なにゆえでしょう?
0289279
03/07/27 18:32ID:???勇者にロトと名づける裏技、見つかりました
print "pl rb pl rb".gsub(/pl|rb/) {|m|
m = (m=='pl')? 'Perl' : 'Ruby'
}
これでやったらできました。 |m| あたりが良くわからんけど。
ruby-lang.orgのgsubのリファレンスマニュアルみたらすぐ見つかりました。すみません
rubyの後方参照($1とか\1とか)はあんま柔軟なことできないみたいですね
ありがとうございました
0292nobodyさん
03/07/28 00:51ID:???puts "pl rb pl rb".gsub(/(pl|rb)/) { ($1 == 'pl') ? 'Perl' : 'Ruby' }
0293nobodyさん
03/07/28 01:38ID:???pattern = Regexp.compile(table.keys.join('|'))
puts("pl rb pl rb".gsub(pattern){table[$&]})
0294279
03/07/28 02:04ID:???そっちの方がカコイイ!!ありがとう
>>293
最適化されてしまった...
table.keys.join('|')って汎用的でおもしろいアイデアですね。ワラタ
おもしろいなRuby
0295nobodyさん
03/07/28 22:58ID:???キーが正規表現含むとおかしくなるから
quoteしたほうがいい
pattern = Regexp.compile(table.keys.collect {|key| Regexp.quote(key) }.join('|'))
0296279
03/07/29 00:45ID:???いやぁ、やりたかったことはRubyでPHPみたいなファイルを実行するものなんですけどね。
↓こんな感じ。検索でヒットするパターンが多いからちょっと連想配列は使えないかも。
んで昨日、ERBというライブラリがあることを知ってこれは無駄になりました(´・ω・`)ショボーン
class EzRubyServerPage < Object
@@boundary = '__BOUNDARY_EZ_RHP__'
def eval( arg = "" )
Kernel::eval "$_ = <<"+@@boundary+";\n" + arg.gsub( Regexp.compile('[<%][%>]=?') ){
($&=='<%' ) ? "\n"+@@boundary+"\nchop;print;":
($&=='<%=') ? "\n"+@@boundary+"\nchop;print;print ":
($&=='%>' ) ? "\n$_ = <<"+@@boundary+";\n":
$&
} + "\n"+@@boundary+"\nchop;print;"
end
end
$tokumori = "パパの特盛"
EzRubyServerPage.new.eval("<html><body>ようこそ <%=$tokumori%>へ</body></html>\n")
0297279
03/07/29 00:53ID:???検索速度がorでつなげるより速そうだから [<%][%>]=? なんてしてるんですが
よく考えたらパターンは <%、%>、<%=、%>=、>%、%<、>%=、%<= の8通りだけだから連想配列の方が良いか
まあいいや、ERBとかいうのを使おう...。スレ汚しすんまそん。ハァ
0298nobodyさん
03/07/29 00:57ID:???0300nobodyさん
03/07/29 23:02ID:SXyppRH6利用しなくなったセッションファイルを自動で消去することは
できないんでしょうか?
ある本をよんだら、CGI::Session.sweep()を使うと書いてあった
のですが、エラーが出て使えません。
0301nobodyさん
03/07/30 03:09ID:???> ある本をよんだら、CGI::Session.sweep()を使うと書いてあった
sweepの定義はその本に書いあるのだと思われ。
利用しなくなったかどうかの判断基準は利用者によって異なる。
だから、一般的な方法は存在しない。
0302nobodyさん
03/07/30 04:42ID:???0303nobodyさん
03/08/05 00:21ID:???るびきち著『Rubyシェルプログラミング−irb&irbsh徹底活用−』8月4日発売です
http://www.gihyo.co.jp/books/syoseki.php/4-7741-1798-6
基本的にこの人は他人との意思疎通が不可能な引き篭り星人な為、
何を言っているのか、何を伝えたいのかが全く見えません。故に専門書としては全く使えません
ではこの本のウリは何か?それは「他人をムカつかせるにはどうすればいいのか?」という厨房必修のスキル養成本としての価値に
他ならないでしょう。礼儀をわきまえない砕けすぎた態度から始まり、徐々に高圧的な態度へ、最後は相手を全否定し卑下し、自分が
相手に比べ、如何に優れた人間であるかを延々と語り続けるその試合運びに、各地厨房サイトから歓声が上がっております
なんとあの、2ちゃんねるネトヲチ板の皆様からも「掲示板のレスが反感を買うための例文集のようだ」とのお墨付きを得ております
そして「絶対零度つまらなギャグ集」としての機能も持ち合わせております。
なぜ、ウケ狙いの小ネタが、そこまでつまらないのか?スベろうと努力したってそこまでつまらない発言できるものではありません
正に天が与え給った才能だNe!! 合コンで思いっきりスベッて周りからジト目で見られてみたいソコのあなた!必読です。
参考文献 Rubyを256倍使うための本 魔道編
0304nobodyさん
03/08/06 19:53ID:???0305山崎 渉
03/08/15 22:44ID:???│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0306nobodyさん
03/08/23 03:43ID:???できません。
MLをみたら $DEBUG = true
にするとありますが、そうしても変化がありません。。。
どうすればいいんですか?
0307nobodyさん
03/08/23 19:08ID:???eruby 自体が起動されてないんじゃないの?
サーバーの設定を確認した方がいいような。
サーバーのエラーログが見れるのならそこを見るべし。
0308nobodyさん
03/08/23 21:49ID:Ba5Hz+Nk面倒くさいだけなんです。
作っている時だけブラウザにエラーを表示してくれると助かるんですが。
eruby + mod_ruby で使ってます。
手元に環境がないんでversionがわかんないんですが、どちらも最新のものだと思います。
0309nobodyさん
03/08/23 22:32ID:???コマンドラインで実行してみれ。
0310nobodyさん
03/08/24 00:59ID:???ruby の parse error は apacheのログには表示されますので、
それをブラウザに表示できる設定がないかなと思ったんです。
stderrはerubyでは拾えないということですか?
0311nobodyさん
03/08/24 02:40ID:???0312nobodyさん
03/08/24 05:41ID:???なんでブラウザで見たいのかがさっぱり分からん
0313nobodyさん
03/08/24 06:34ID:3TVF6TbnCGIの引数渡すのがめんどくさいんだろ
0314312
03/08/24 10:00ID:???めんどくさいていうか、わかんないんです。
コマンドラインでPOSTデータやcookieデータを渡す方法が。
0315あぼーん
NGNG0316nobodyさん
03/08/24 20:16ID:???0317312
03/08/25 00:38ID:???例外が発生しても Internal server errorになるわけで。
できないんなら、できないでいいんだけど。
煽られるのって楽しいね。
0318nobodyさん
03/08/25 01:25ID:???つーか、311=312なの??
0319nobodyさん
03/08/25 09:27ID:???実行時の例外は $DEBUG=true しとけばブラウザで確認できるはずだから
インタプリタがコンパイルできるかどうかだけはコマンドラインでeruby実行して
調べれっていわれてるんでしょ。
0320nobodyさん
03/08/25 14:17ID:IWdWlewI0321nobodyさん
03/08/25 15:13ID:???0322nobodyさん
03/08/25 18:59ID:???ソース丸見えになるのでデフォルトでこれは勘弁と思ったものだ。
0323nobodyさん
03/08/26 01:50ID:???mod_ruby を外したらブラウザに表示できました。
mod_ruby + eruby だと表示できないようです。
--
mod_ruby 1.0.5
ruby 1.6.8 (2003-03-26)
eRuby version 1.0.3
0324nobodyさん
03/08/26 11:26ID:???なるほど、と思ってソースのあたりをいろいろ探して見た
httpd.conf で
RubyRequire apache/eruby-run -> RubyRequire apache/eruby-debug
RubyHandler Apache::ERubyRun.instance -> RubyHandler Apache::ERubyDebug.instance
に変更したらparse error もブラウザに出た
しかし、HTTPサーバごとデバッグ環境にしなけりゃならんのだなあ・・・
0325nobodyさん
03/08/26 22:36ID:???http://raa.ruby-lang.org/list.rhtml?name=html-template2
他の環境(オブジェクト、DB)を変更する副作用が一切ないから
思う存分プレゼンテーションロジックのデバッグが出来る
ビジネスロジックはTest::Unitできちんとテスト書きましょう
0326nobodyさん
03/08/31 13:41ID:???0328nobodyさん
03/09/02 06:02ID:jo93f+PB0329nobodyさん
03/09/03 02:26ID:???0330nobodyさん
03/09/03 02:41ID:6XWfASQRhtml-template.rdだけじゃ、複雑なことしたいときどーすりゃいいか分からん
0331nobodyさん
03/09/03 22:54ID:???ENV[]から代入した文字列は変更不可だった
とりあえずひっかかったのはいまのとここれだけ
0332nobodyさん
03/09/04 02:16ID:???変数にアサインしてもStringオブジェクト自体はかわらんからね。
dup すれ。
0333nobodyさん
03/09/04 10:48ID:???Rubyの使用が最も少ないサーバ(ほとんどphpとPerl)を選んで
入れたのに、いきなり出たんでちょっと別のサーバに持ってくのは
慎重にならざるをえないな・・
0334nobodyさん
03/09/07 18:35ID:90cSPk+Wが、サーバから動かない時って、どんな可能性があるでしょうか?
INTERNAL_SERVER_ERRORになってしまいます。
以下のことは確認しました。何か理由思いつかないでしょうか?
実行可能になっています。
そのディレクトリにwwwがファイルを作れるようになってます。
Apacheの設定でCGIを使えるようにしています。
#!/usr/local/bin/rubyを文頭に書いてます。
print "Content-type: text/html"はあります。
0335nobodyさん
03/09/07 18:46ID:???apacheのエラーログには何か出てない?
suEXEC関連のエラーなら、そっちのログも(ディレクトリがグループ書き込みできると実行できない)
0336334
03/09/07 19:18ID:90cSPk+Wやっと、できました!!
あーよかった。もうちょっとで一日が無駄になるところでした(^^;)
Apacheのログみてたら、book1~ に対してPermission deniedとか書いてあったので、
book1~を削除したら、動いてくれました。
PStoreの保存するファイルの名前がbook1で、コマンドラインから実行していた時に
book1やbook1~が作られていました。
book1の方は消していたのですが、book1~は気にせず残したままでした。
ありがとうございました。これからは、CGIが動かない時、Apacheのログもよむことにします。
ちなみに、他にでてたエラーのキーワードは、こんな感じです。
同じようなエラーが出た時に検索にかかるように、載せておきます。
Premature end of script headers: wook.cgi, referer: http://localhost/cgi-bin/***.html
/usr/local/lib/ruby/1.8/ftools.rb:23:in `initialize': Permission denied - ./book1~ (Errno::EACCES), referer: http://localhost/cgi-bin/***.html
/usr/local/lib/ruby/1.8/ftools.rb:23:in `open', referer: http://localhost/cgi-bin/***.html
from /usr/local/lib/ru
by/1.8/ftools.rb:23:in `syscopy', referer: http://localhost/cgi-bin/***.html
from /usr/local/lib/ruby/1.8/ftools.rb:43:in `copy', referer: http://localhost/cgi-bin/***.html
などでした。
ホントありがとうございました!
0337nobodyさん
03/09/08 00:50ID:???URLエンコードってどうすればよいんでしょ‥?
0339337
03/09/08 01:57ID:???どうやら、IEが返してくるENV['HTTP_COOKIE']の値が想定していたのと違うみたい
writeから始まって、値のみがカンマ区切りで入っているデータが返ってくるようで
キーはどこいったの??って感じです
値を変えてみてしてみたのですが、返ってくるENV['HTTP_COOKIE']の値が変わらず‥
path指定を消して、再度値を変えてみてしてみたのですが、変わらず‥
以下のメソッドの結果をそのままプリントしているのですが、なにかまずいでしょうか?
def mkCookie(recipe, expiryDate = 30, path = nil)
t = (Time.new.to_i + (expiryDate * 86400)).to_i
t = Time.at(t).gmtime.strftime("%a, %d-%b-%Y %H:%M:%S GMT")
text = ''
recipe.each do |key, value|
text << "Set-Cookie: #{escape(key)}=#{escape(value)}; expires=#{t};" + (path ? " path=#{path};" : '') + "\n"
end
text
end
ひょっとして、クッキー使用前に使ってた
IE Powertoys Plus!のどこでもクッキーが???
0340337
03/09/08 08:54ID:???関係のあるCookieを全て削除したらどうやらスクリプト側で受け取るものは正常になっていました
Cookieのファイルを見た感じの違いはキー・値のペアの区切りが改行になっているか「*」になっているかの違いでした
どうしてそうなったのか、Cookieはなぜ上書きされなかったのかは不明‥
0341nobodyさん
03/09/08 10:36ID:???具体的になにがしたいんだ?
HTML::Templateでは、テンプレート側では複雑なことはできない。
複雑なこと(例えば複雑な条件式など)は、ぜんぶメインプログラム側で行う。
0342nobodyさん
03/09/09 01:02ID:64dJm4LW使われてないとエラーになんの?
0344nobodyさん
03/09/09 10:23ID:64dJm4LWtempl = HTML::Template.new('hogehoge.html');
templ.param({'test'=>true});
array = [{'host'=>'book.2ch.net','board'=>'bizplus'},
{'host'=>'news5.2ch.net','board'=>'newsplus'},
{'host'=>'news4.2ch.net','board'=>'news'}];
templ.param({'array'=>array});
print(templ.output);
------------------
----hogehoge.html----
<!begin:test>
<!begin:array>
HOST:<!var:host>
BOARD:<!var:board>
<!end:array>
<!end:test>
---------------------
----error message----
./template.rb:78:in `node': node array not found (ArgumentError)
from ./template.rb:62:in `param'
from ./template.rb:61:in `each'
from ./template.rb:61:in `param'
from ./template.rb:59:in `each'
from ./template.rb:59:in `param'
from ./hogehoge.rb:9
--------------------
0345nobodyさん
03/09/10 19:14ID:???これって、どのHTML::Templateを使っている?
おれが使っているのは
http://raa.ruby-lang.org/list.rhtml?name=html-template2
なんだけど、テンプレートの書き方がなんか違うね。
それはそうとエラーの原因は、
(1)テンプレートで記述している木構造と
(2)テンプレートに与えているデータの木構造
が異なることが原因だろ。
(1)では test の下に array があるが、
(2)では test と array が兄弟になってないか?
0346345
03/09/10 20:46ID:???おれの勘違いだったかも。
ループのまわりをif文で囲むと、どうもうまくいかないみたい。
表示する/しないをif文で制御するのではなく、
ループするデータがある/ないで表示を制御するとうまくいく。
------- sample.html ------
<TMPL_LOOP NAME="list">
HOST: <TMPL_VAR NAME="host">
BOARD: <TMPL_VAR NAME="board">
</TMPL_LOOP>
--------------------------
0347345
03/09/10 20:47ID:???-------- sample.rb -------
#!/usr/bin/ruby
require 'html/template'
test = true # or false
list = [
{ 'host' => 'book.2ch.net', 'board' => 'bizplus', },
{ 'host' => 'news5.2ch.net', 'board' => 'newsplus', },
{ 'host' => 'news4.2ch.net', 'board' => 'news', },
]
param = {}
if test then
param['list'] = list
else
param['list'] = []
end
template = HTML::Template.new('filename' => 'sample.html')
template.param(param)
print template.output
--------------------------
0348nobodyさん
03/09/10 21:02ID:sTBsqDi+そっちもループをifで囲めないんですか?
0350nobodyさん
03/09/11 17:30ID:???直したから試してみて(20030911 version)
<TMPL_IF NAME="list">
<TMPL_LOOP NAME="list">
HOST: <TMPL_VAR NAME="host">
BOARD: <TMPL_VAR NAME="board">
</TMPL_LOOP>
</TMPL_IF>
こんなのも、ちゃんと動くようになった。
0352nobodyさん
03/09/13 02:53ID:???見事に直ってた。さすが作者。
-------- sample.html --------------
<TMPL_IF NAME="flag">
<TMPL_LOOP NAME="list">
HOST: <TMPL_VAR NAME="host">
BOARD: <TMPL_VAR NAME="board">
</TMPL_LOOP>
</TMPL_IF>
-----------------------------------
------------ sample.rb ------------
#!/usr/bin/ruby
require 'html/template'
list = [
{ 'host' => 'book.2ch.net', 'board' => 'bizplus', },
{ 'host' => 'news5.2ch.net', 'board' => 'newsplus', },
{ 'host' => 'news4.2ch.net', 'board' => 'news', },
]
param = {}
param['flag'] = true
param['list'] = list
template = HTML::Template.new('filename' => 'sample.html')
template.param(param)
print template.output;
-----------------------------------
0353nobodyさん
03/09/13 02:55ID:???HOST: book.2ch.net
BOARD: bizplus
HOST: news5.2ch.net
BOARD: newsplus
HOST: news4.2ch.net
BOARD: news
>>348
ちゃんと作者に感謝しとけよ。
0354nobodyさん
03/09/13 12:06ID:???0356nobodyさん
03/09/15 08:44ID:???ページあたりにオブジェクトを割り当てるってのはまどころっこしいだけ。
(これはWebObject / Struts あたりの方法)
eRubyやPHPのようにページとロジックを直接結びつけるアプローチが
どれだけ正しいのかということがわかる。(MVCは向かないね)
0357nobodyさん
03/09/15 08:47ID:4+LfvYPmamrita のように出力するためだけにあるものならいいけど、
値の受け取り、処理、までやるとなると、複雑さが増すだけ。
むしろ、1処理/1オブジェクトというアプローチをとるべきだ。
ページの抽象化なんて Hash オブジェクトで十分
0358nobodyさん
03/09/15 08:49ID:???0360nobodyさん
03/09/15 10:42ID:???eRubyやPHPではロジックとビューとが分離できないじゃん。
友達いないやつなら一人でロジックとビューをやるしかないけど
そうでないなら分担して作業したほうがいいよ。
0363nobodyさん
03/09/18 01:57ID:???0364nobodyさん
03/09/18 11:16ID:???みたけど、専用のフレームワークじゃん。それはずるいだろ。
そんなの持ち出していいんなら、なんだってロジックとビューの分離は可能だよ。
逆にいえば、そういうのを持ち出さないと分離できないってことじゃないか?
#まあPHPでは include() 使えば分離できるんだけどね。
つーか、もとの発言
>>356
では、
> eRubyやPHPのようにページとロジックを直接結びつけるアプローチが
> どれだけ正しいのかということがわかる。(MVCは向かないね)
なんてことをいってたので、それは違うだろ!というツッコミで
「ロジックとビューの分離」をあげてみた。
文章が悪かったかもしれんが、分離ができる/できないという話よりも、
分離をすべきか否かという話をしたい。
おれは分離したい。そのための手段として、CGIKitはいいと思う。
0365nobodyさん
03/09/19 20:30ID:Z56dowS1<TMPL_LOOP NAME='list1'>
<TMPL_VAR NAME='hoge'>
<TMPL_VAR NAME='foo'>
</TMPL_LOOP>
<TMPL_LOOP NAME='list2'>
<TMPL_VAR NAME='hoge'>
<TMPL_VAR NAME='bar'>
</TMPL_LOOP>
ってなった場合、
list1=[{'hoge'=>a,'foo'=>b1},{'hoge'=>a,'foo'=>b2},...]
list2=[{'hoge'=>a,'bar'=>c1},{'hoge'=>a,'bar'=>c2},...]
template.param({'list1'=>list1,'list2'=>list2})
みたいに配列の全要素にhogeを定義しないといけないんですか?
0366nobodyさん
03/09/20 02:02ID:???> 分離をすべきか否かという話をしたい。
どれを選ぶかは目的、規模、開発形態によるんじゃねーの?
(0) コードにHTMLを埋め込む
(1) HTMLを抽象化する(CGI::Html*)
(2) HTMLにコードを埋め込む(eruby)
(3) 別々に書く(amrita)
(4) 複数のセッションに対応する(div)
(3)はすごく良さげに見えるが、ID属性を利用するツールを
使ってるデザイナさんとファイルをやりとりする場合は
そのツールの挙動をよく知る必要がある。
PHP慣れしたデザイナさんと組む場合は(2)だと話がはやい。
(1)は画面内を部品化する場合に割と良いことがある。
別の例だと、Javascriptでサイズ変更不能な窓にする場合、
後からサイズの仕様が変わるのに備えるならprettyprintを
使って(0)でレイアウトを組むとか。
0367nobodyさん
03/09/20 09:45ID:???param["hoge"]が未定義だとnilが返ってくるから
IFで判定できるよ。
<TMPL_IF NAME='hoge'>
<TMPL_VAR NAME='hoge'>
<TMPL_ELSE>
hogeなし
</TMPL_IF>
0368nobodyさん
03/09/20 13:46ID:YAOMW6mt<TMPL_LOOP NAME='list'>
HOGE:<TMPL_VAR NAME='hoge'>
PIYO:<TMPL_VAR NAME='piyo'>
</TMPL_LOOP>
---------------
#!/usr/bin/env ruby
require 'html/template'
template=HTML::Template.new('filename'=>'hoge.html')
#template.param({'hoge'=>'x'})
#list=[{'piyo'=>'a'},{'piyo'=>'b'},{'piyo'=>'c'}]
list=[{'piyo'=>'a','hoge'=>'x'},{'piyo'=>'b','hoge'=>'x'},{'piyo'=>'c','hoge'=>'x'}]
template.param({'list'=>list})
print(template.output)
↑はコメント外して6行目をコメントにするとエラーになります。
---- error ----
(eval):10:in `<<': failed to convert nil into String (TypeError)
from (eval):10:in `initialize'
from (eval):8:in `each'
from (eval):8:in `initialize'
from (eval):1:in `call'
from ./html/template.rb:67:in `output'
from ./hoge.rb:8
---------------
'hoge'は'piyo'と同じ階層で定義しないといけないのですか?
0369nobodyさん
03/09/20 18:41ID:4MmeVqhGファイルオープンして、文字列を書き込むとき、SJISで書き込むにはどうしたらいいでしょうか?
0370nobodyさん
03/09/20 18:45ID:???君はRubyのIOをPerlIOか何かのように考えているのかね。
Shift_JISを書き込みたきゃNKFなりIconvなりで変換して書き込みたまえ。
0371nobodyさん
03/09/20 18:52ID:4MmeVqhG出来ました、どうもです。
0373nobodyさん
03/09/21 20:59ID:???>'hoge'は'piyo'と同じ階層で定義しないといけないのですか?
基本的にはそうです。
内部的には
out << param['piyo']
out << param['hoge']
という処理なので
Hashのデフォルト値を指定するという手もあります。
Hash+Arrayなインターフェースを持った親をたどれるツリーのようなparamを作ってやれば上位階層の
'hoge'を取ってくるとかもできるでしょう。
■ このスレッドは過去ログ倉庫に格納されています