Ruby: Probleme verwenden Mechanize, um auf mein Formular zuzugreifen!
Frage
Nur zum Spaß habe ich einen sehr kleinen Rails -Blog geschrieben (nur eine Hello -Welt). Jetzt möchte ich einen Beitrag mit Mechaniken erstellen. Also habe ich einen Ruby Prog erstellt und angefangen zu codieren.
Hier ist mein Problem: Rails erstellt mein Formelement, einschließlich aller Eingänge. In HTML sehen meine Eingaben so aus:
<input type="text" size="30" name="post[title]" id="post_title">
oder
<textarea rows="20" name="post[description]" id="post_description" cols="40"></textarea>
Nun ... hier ist mein Ruby Prog mit 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"
Ich weiß, wo mein Fehler ist, aber ich weiß nicht, wie ich es beheben soll. Bei target_form.post [title] = "test" Es stürzt ab, Ursache von
undefined method `name' for nil:NilClass (NoMethodError)
Ich denke (bitte korrigieren Sie mich), es liegt an dem Eingabennamen, weil es Post [Titel] anstelle von nur Post ist, oder? Wie kann ich es reparieren?
Lösung
Wie wäre es mit
target_form.field_with(:name => "post[title]").value = "test"
target_form.field_with(:name => "post[description]").value = "test"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow