0

我有一个 Rails 应用程序,其中有一个Project模型、一个Team模型和一个User模型。我正在尝试使用模型在Project 表单Team中创建一个嵌套表单,在这个嵌套表单中,我有一个collection_select字段允许用户选择现有用户的电子邮件(从模型中)并输入在User名为模型。到目前为止,这一切正常,但是我遇到的问题是,在显示页面上,从该字段收集的数据显示为数字(用户 ID),而不是提交表单时选择的电子邮件。为什么会发生这种情况,我该如何解决这个问题?提前致谢!:memberTeamcollection_select

项目形式:-

<%= bootstrap_nested_form_for(@project, :html => {:multipart => true}, layout: :horizontal)   do |f| %>

.
.

  <% f.fields_for :teams do |builder| %>
    <%= builder.collection_select :member, User.all, :id, :email, { prompt: "Please select", :selected => params[:user], label: "Employee" } %> 
    <%= builder.link_to_remove "Remove" %>
  <% end %>
  <%= f.link_to_add "Add Team Member", :teams %>


 <%= f.submit %>
<% end %>

显示页面:-

    <p>
      <strong>Team:</strong>
      <% @project.teams.each do |team| %>
        <%= team.member %>
      <% end %>
    </p>
  </div>
</div>
4

1 回答 1

1

根据这个http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select

您将检查第三个选项是作为值保存在表中的 value_method。所以目前是id. 您需要将其替换为email.

这将起作用

<%= builder.collection_select :member, User.all, :email, :email, { prompt: "Please select", :selected => params[:user], label: "Employee" } %>
于 2015-08-04T07:06:03.897 回答