2017-03-23 72 views
0

我有一個基本的Ruby/Sinatra應用程序,它的表單看起來不太正確。該表單有兩個輸入,一個文本框和一個textarea。當我檢查應該通過表單傳遞給應用程序的參數時,我只能看到來自文本框的輸入,而不是textarea。我的代碼如下:Sinatra應用程序表單不會發布整個表單

在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"} 

但要有也是爲textarea輸入返回的某種信息!

回答

0

Textarea控件可以包含大量數據,所以不會通過params列表發送。他們通過請求的主體發送。

我不是紅寶石專家,所以不能幫助您獲取數據,對不起!

3

原來Sinatra的Sinatra params散列在輸入標籤中查找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>