Ruby: Проблемы с использованием Mechanize для доступа к моей форме! - PullRequest
2 голосов
/ 11 марта 2010

Ради интереса я написал очень маленький блог о рельсах (просто привет). Теперь я хочу создать пост с использованием механизации. Поэтому я создал Ruby Prog и начал кодировать.

Вот моя проблема: Rails создает мой элемент формы, включая все входные данные. В HTML мои входные данные выглядят так:

<input type="text" size="30" name="post[title]" id="post_title">

или

<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)

Я думаю (пожалуйста, поправьте меня), это из-за входного имени, потому что это сообщение [заголовок], а не только сообщение правильно? Как я могу это исправить?

1 Ответ

5 голосов
/ 11 марта 2010

Как насчет

target_form.field_with(:name => "post[title]").value = "test"
target_form.field_with(:name => "post[description]").value = "test"
...