我现在正在读这篇文章:
http://www.theodinproject.com/ruby-on-rails/advanced-forms
了解有关rails中表单的更多信息。我在#34;预先选择带有集合的标签"部分。我对阅读中的某些内容感到有点困惑。在创建下拉菜单的小例子中,它表示"您的创建操作将收到一个名为" user_id"的属性。"
以下是有问题的代码:
..
<select name="user_id">
<%= @users.each do |user| %>
<option value="<%= user.id %>"><%= user.name %></option>
<% end %>
</select>
..
我无法看到下拉菜单中的数据如何发送到创建操作。如果我使用form_for进行它,它将有一个submit函数,它自动将params哈希中的表单内容发送到create动作。我还不清楚如果没有任何形式的form_for或提交按钮,创建操作如何通过params哈希从表单中获取数据。究竟是什么将表单内容映射到创建操作?
答案 0 :(得分:0)
给定代码上方和下方的..
表示这只是一个代码段 - 某处会有一个提交按钮。提交表单后,选定的值将作为密钥user_id
下的参数哈希的一部分发送给控制器 - 这一行中发生的事情:
<select name="user_id">
您可以自行尝试:如果您将该行中的user_id
更改为my_param_name
,您的参数哈希将如下所示:
{'my_param_name' => 23}
其中23
是列表中所选用户的user_id