2017-03-23 1 views
0

私はかなりうまく動作していないようなフォームの基本的なRuby/Sinatraアプリを持っています。フォームには、テキストボックスとテキストエリアの2つの入力があります。フォームでアプリケーションに渡す必要があるパラメータを調べると、テキストボックスからの入力だけが表示されますが、テキストエリアは表示されません。私のコードは以下の通りです:Sinatra app formがフォーム全体を投稿していません

app.rb

post '/create' do 
    params.inspect 
end 

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

では、私はhttp://localhost:4567/createに移動すると、それだけを返す:

{"title"=>"asdf"} 

をしかしそこにすべきまた、テキストエリアの入力のために返された何らかの情報でもあります!

答えて

0

Textareaコントロールには大量のデータが含まれている可能性があるため、paramsリストには送信されません。それらは要求の本文を介して送信されます。

私はルビーエキスパートなので、データを取得するのに役立ちません、ごめんなさい!

3

SinatraのSinatraのハッシュは、Sinatraのハッシュは入力タグのname属性を探します。 https://learn.co/lessons/sinatra-forms-params-readme-walkthrough

テキストエリアボックスの正しい宣言で、その情報は、次のようにしてきたはずですが見つかりました:

<fieldset> 
    <label for="content">Content:</label> 
    <textarea rows="10" columns="50" name="content" id="content"></textarea> 
</fieldset> 
関連する問題