我是ruby on rails的新手,我试图在form_for帮助器中创建一个下拉列表,引用另一个模型(用户)。基本上,我试图从用户列表中进行选择,以便将他们的电子邮件复制到接收者字段。
这是我到目前为止,我只能手动输入电子邮件地址:
<%= form_for :femail, url: {action: "create"} do |form| %>
<p>
<%= form.label :from %><br>
<%= form.text_field :from %>
</p>
<p>
<%= form.label :to %><br>
<%= form.text_area :to %>
</p>
<p>
<%= form.label :subject %><br>
<%= form.text_field :subject %>
</p>
<p>
<%= form.label :body %><br>
<%= form.text_area :body %>
</p>
<p>
<%= form.submit %>
</p>
<% end %>
提前致谢。
你需要让你的用户来自某个地方(也许是你的控制器?),我将把它称为@users
。然后你可以这样做:
<p>
<%= form.label :to %><br>
<%= form.select(:to, options_for_select(@user.map { |u| [u.name, u.email]}) ) %>
</p>
这将显示一组显示user.name的选项,但实际上会提交值user.email。 select
标签有一些非常有用的选项(例如设置默认值,不接受空白条目等)。
更多信息:Rails指南的this section和FormOptionsHelper docs。