Ruby 初心者スレッド ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドの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] をつけて特定する癖をつけておかないと、今みたいに変なとこで詰まったりするぞ
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
4284日前に更新/244 KB
担当:undef