Ruby: Problèmes d'utilisation de mécaniser pour accéder à mon formulaire!

StackOverflow https://stackoverflow.com/questions/2423971

  •  19-09-2019
  •  | 
  •  

Question

Juste pour le plaisir, j'ai écrit un blog très petit Rails (juste un monde de Hello). Maintenant, je veux créer un post à l'aide de mécanisé. J'ai donc créé un prog de rubis et j'ai commencé à coder.

Voici mon problème: Rails crée mon élément de formulaire, y compris toutes les entrées. Dans HTML, mes entrées ressemblent à ceci:

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

ou

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

Eh bien ... voici mon prog de rubis en utilisant mécaniser:

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"

Je sais où est mon erreur mais je ne sais pas comment le réparer. Sur cible_form.post [title] = "test" il plante, cause de

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

Je pense (s'il vous plaît, corrigez-moi), c'est à cause du nom d'entrée, car il s'agit du post [titre] au lieu de ne publier que? Comment puis-je le réparer?

Était-ce utile?

La solution

Que diriez-vous

target_form.field_with(:name => "post[title]").value = "test"
target_form.field_with(:name => "post[description]").value = "test"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top