Sinatra应用表单未发布整个表单

时间:2017-03-23 04:00:30

标签: html ruby forms sinatra

我有一个基本的Ruby / Sinatra应用程序,其表单看起来似乎不太正常。表单有两个输入,一个文本框和一个textarea。当我检查应该通过表单传递回app的params时,我只看到文本框中的输入,而不是textarea。我的代码如下:

在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输入返回某种信息!

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

Textarea控件可以包含大量数据,因此不会通过参数列表发送。它们通过请求正文发送。

我不是红宝石专家,因此无法帮助您获取数据,抱歉!