Ruby 初心者スレッド Part 23at TECHRuby 初心者スレッド Part 23 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト788:デフォルトの名無しさん 08/12/23 23:48:58 このへんの動作と返り値のオブジェクトの種類を全部把握しないと使えなくて紛らわしいので、 WWW::Mechanize::List は最新版 0.9.0 では削除されてる agent.page.forms.name('form1') と書いたら NoMethodError で動作しない Mechanize のバージョンが 0.8.5 かそれ以降なら form_with が使えるよ それより古いなら、name に限っては agent.page.form('form1') がフォームオブジェクトを返すほぼ同じ動作をする form0 == form1 を true にしたいなら、List からフォームオブジェクトを取り出して比較してくれ form1[0] が WWW::Mechanize::Form クラスのオブジェクトを返して form0 と同じもののはず 789:デフォルトの名無しさん 08/12/24 00:04:55 う、答えになってね > どんな違いがあるのですか? 「agent.page.forms[0] は WWW::Mechanize::Form クラスのオブジェクトを返しているが、 agent.page.forms.name('form1') は WWW::Mechanize::List クラスのオブジェクトを返してる」 が回答でございます だから、 form1 = agent.page.forms.name('form1')[0] と、List 内の要素を明示的に取り出さないと、WWW::Mechanize::Form オブジェクトそのものにはならないよ 「クラスのメソッドは Object#send で動作するし、返り値も普通に返ってくるけど、目的のクラスのオブジェクトではない」という変な状態 抽出作業が完了したら [0] をつけて特定する癖をつけておかないと、今みたいに変なとこで詰まったりするぞ 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch