2017-03-23 3 views
0

Ich habe eine einfache Ruby/Sinatra-App mit einem Formular, das nicht ganz richtig funktioniert scheint. Das Formular hat zwei Eingaben, ein Textfeld und ein Textfeld. Wenn ich die Parameter überprüfe, die über das Formular an die App zurückgegeben werden sollen, sehe ich nur die Eingabe aus dem Textfeld, aber nicht die Textfläche. Mein Code ist unten:Sinatra App Formular nicht das gesamte Formular

In app.rb

post '/create' do 
    params.inspect 
end 

In new.erb

<h1>Add New Page</h1> 
<div> 
    <form method="post" action="/create"> 
     <fieldset> 
      <label for="title">Title:</label> 
      <input type="text" name="title" id="title"> 
     </fieldset> 
     <fieldset> 
      <label for="content">Content:</label> 
      <textarea rows="10" columns="50" id="content"></textarea> 
     </fieldset> 
     <input type="submit"> 
    </form> 
</div> 

<a href="/">Back to Index</a> 

Als ich nach http://localhost:4567/create navigieren es gibt nur:

{"title"=>"asdf"} 

Aber es sollte auch eine Art von Information, die für die Textarea-Eingabe zurückgegeben wird!

Antwort

0

Textarea-Steuerelemente können große Datenmengen enthalten und werden daher nicht über die Parameterliste gesendet. Sie werden über den Körper der Anfrage gesendet.

Ich bin kein Ruby-Experte, kann Ihnen also nicht helfen, die Daten raus zu bekommen, sorry!

3

Stellt sich der Sinatra params Hash in Sinatra sucht das Namensattribut in Eingabe-Tags. Festgestellt, dass Informationen auf https://learn.co/lessons/sinatra-forms-params-readme-walkthrough

Die richtige Erklärung für den Textbereich Box sollten so gewesen sind:

<fieldset> 
    <label for="content">Content:</label> 
    <textarea rows="10" columns="50" name="content" id="content"></textarea> 
</fieldset> 
Verwandte Themen