下拉框 - 填充表单中另一个表的数据 - Ruby on Rails

bga*_*oci 3 ruby-on-rails

我正在尝试向我正在创建的CRM添加注释功能.我正在使用经过身份验证的环境,用户可以在其中管理其潜在客户.例如,我注册,我登录,我可以进入潜在客户并查看它们.所以...我已经创建了一个潜在客户和用户表,让他们一切都很好.我现在正试图让用户能够记录并将其"附加"给潜在客户.所以......我创建了一个带有列,注释和前景的笔记表.用户可以从他们提取此表单的任何位置记录,我的目标是在下拉框中提供他们的客户名称以附加到表单.到目前为止,我已在前景控制器中创建了一个对象,其中包含以下内容

def index
    @myprospects = current_user.prospects.find(params[:id])
  end
Run Code Online (Sandbox Code Playgroud)

我正在努力在视图/ notes/new.html.erb文件中创建下拉列表的下一步.表单如下所示:

<h1>New note</h1><hr/>

<% form_for(@note) do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :note %><br />
    <%= f.text_area :note %>
  </p>
  <p>
    <%= f.label :prospect %><br />
    <%= f.text_field :prospect %>
  </p>
  <p>
    <%= f.submit 'Create' %>
  </p>
<% end %>

<%= link_to 'Back', notes_path %>
Run Code Online (Sandbox Code Playgroud)

我如何映射

  <p>
    <%= f.label :prospect %><br />
    <%= f.text_field :prospect %>
  </p>
Run Code Online (Sandbox Code Playgroud)

字段显示我想要的数据?我是三天进入轨道所以请跟我说话,就像我是一个10岁(一个不知道铁轨的10岁).

EmF*_*mFi 10

你正在寻找一个选择框.

Rails提供了很多帮助来创建表单输入.适合你工作的是collection_select.

假设您已正确设置注释和潜在客户之间的多对一关系,并且在潜在客户表中包含潜在客户名称的列称为"名称",这将完全符合您的要求:

<p>
  <%= f.label :prospect %><br />
  <%= f.collection_select :prospect_id, @myprospects, :id, :name, :prompt => "Select a prospect" %>
</p>
Run Code Online (Sandbox Code Playgroud)