我们尝试在 Sinatra 中编写嵌套表单。我们可以轻松地将一些值作为模型字段传递:
id="user[name]"
但是,如果我们还想提交相关模型怎么办?假设我们要同时添加一个用户和他的 3 个爱好。如何将它们传递给参数?
我们尝试在 Sinatra 中编写嵌套表单。我们可以轻松地将一些值作为模型字段传递:
id="user[name]"
但是,如果我们还想提交相关模型怎么办?假设我们要同时添加一个用户和他的 3 个爱好。如何将它们传递给参数?
参数被转换为基于name
属性的哈希,而不是id
属性。
要向此哈希添加更多字段,请将它们添加到表单中。这些的结构以及您如何处理它们完全取决于您的实现,但发布它们很简单:
<form action="/route/to/post/to" method="POST">
<input name="user[name]" id="user_name" type="text">
<input name="user[hobbies][0][name]" type="text">
<input name="user[hobbies][1][name]" type="text">
<input name="user[hobbies][2][name]" type="text">
<input type="submit">
</form>
这将返回:
{"user"=>{"name"=>"hiya", "hobbies"=>{"0"=>{"name"=>"1"}, "1"=>{"name"=>"2"}, "2"=>{"name"=>"3"}}}}