Pregunta

Solo por diversión, escribí un blog muy pequeño de Rails (solo un mundo de hola). Ahora quiero crear una publicación usando mecanizar. Así que creé un Ruby Prog y comencé a codificar.

Aquí está mi problema: Rails crea mi elemento de forma, incluidas todas las entradas. En html, mis entradas se ven así:

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

o

<textarea rows="20" name="post[description]" id="post_description" cols="40"></textarea>

Bueno ... aquí está mi Ruby Prog usando mecanizar:

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"

Sé dónde está mi error, pero no sé cómo solucionarlo. En Target_Form.post [Title] = "Test" se bloquea, causa de

undefined method `name' for nil:NilClass (NoMethodError)

Creo que (por favor corríjame), es por el nombre de entrada, porque es post [título] en lugar de solo publicar, ¿verdad? ¿Cómo puedo arreglarlo?

¿Fue útil?

Solución

Qué tal si

target_form.field_with(:name => "post[title]").value = "test"
target_form.field_with(:name => "post[description]").value = "test"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top