我有一个基本的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输入返回某种信息!
答案 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控件可以包含大量数据,因此不会通过参数列表发送。它们通过请求正文发送。
我不是红宝石专家,因此无法帮助您获取数据,抱歉!