在form_for帮助器中创建一个下拉列表,引用另一个模型

问题描述 投票:0回答:1

我是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 %>

提前致谢。

ruby-on-rails
1个回答
2
投票

你需要让你的用户来自某个地方(也许是你的控制器?),我将把它称为@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 sectionFormOptionsHelper docs

© www.soinside.com 2019 - 2024. All rights reserved.