Ради интереса я написал очень маленький блог о рельсах (просто привет, мир). Теперь я хочу создать пост с помощью mechanize. Итак, я создал Ruby Prog и начал программировать.
Вот моя проблема: Rails создает мой элемент формы, включая все входные данные. В HTML мои входы выглядят так:
<input type="text" size="30" name="post[title]" id="post_title">
or
<textarea rows="20" name="post[description]" id="post_description" cols="40"></textarea>
Ну... Вот моя Ruby Prog, использующая Mechanize:
require 'rubygems'
require 'mechanize'
agent = WWW::Mechanize.new
page = agent.get('http://localhost:3000/posts/new')
target_form = page.form_with(:class => 'new_post')
target_form.post[title] = "test"
target_form.post[description] = "test"
page = agent.submit(target_form)
puts "end"
Я знаю, где моя ошибка, но я не знаю, как ее исправить. При target_form.post[title] = "test" происходит сбой, причина
undefined method `name' for nil:NilClass (NoMethodError)
Я думаю (пожалуйста, поправьте меня), это из-за имени ввода, потому что это пост [название], а не только пост, верно? Как я могу это исправить?
target_form
равенnil
, поэтомуpage.form_with(:class => 'new_post')
возвращаетnil
. - person klew   schedule 11.03.2010