Odin项目Ruby on Rails高级表单

时间:2014-08-09 18:07:26

标签: ruby-on-rails forms

我现在正在读这篇文章:

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哈希从表单中获取数据。究竟是什么将表单内容映射到创建操作?

1 个答案:

答案 0 :(得分:0)

给定代码上方和下方的..表示这只是一个代码段 - 某处会有一个提交按钮。提交表单后,选定的值将作为密钥user_id下的参数哈希的一部分发送给控制器 - 这一行中发生的事情:

<select name="user_id">

您可以自行尝试:如果您将该行中的user_id更改为my_param_name,您的参数哈希将如下所示:

{'my_param_name' => 23}

其中23是列表中所选用户的user_id