0

我们尝试在 Sinatra 中编写嵌套表单。我们可以轻松地将一些值作为模型字段传递:

id="user[name]"

但是,如果我们还想提交相关模型怎么办?假设我们要同时添加一个用户和他的 3 个爱好。如何将它们传递给参数?

4

1 回答 1

1

参数被转换为基于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"}}}}
于 2013-03-29T16:15:43.923 回答