4

我想在我的 Rails 应用程序中构建一个 sales_opportunity。sales_opportunity 属于一个用户和一个公司。该代码目前运行良好,并且该表单允许用户根据数据库中预定义的公司集合选择一个公司来链接 sales_opportunity。我想要的是能够在 collection_select 下拉菜单中有一个具有“添加新公司”的字段并将用户带到公司/新页面。目前无法提交sales_opportunity,除非用户之前已将公司添加到他的组织(用户属于_to 组织,公司属于_to 组织)。

该字段的代码如下:

<div class="form-group">
    <%= f.label :company_id, :class => "col-md-4 control-label" %>
<div class ="col-md-8">
    <%= f.collection_select :company_id, @user.organization.companies(:company_name), :id, :company_name %>
 </div>
</div>

有没有办法我可以添加一个链接到这个下拉列表,如果不存在(或者如果他想要添加的公司在列表中不存在),用户可以将其添加到列表中?

我能想到克服这个问题的唯一方法是使用 if 语句,该语句具有指向按钮的链接以添加公司(如果不存在) - 但这并不涵盖公司在数据库中但不是用户想要的情况.

有任何想法吗?

4

1 回答 1

1

您可以使用 JavaScript 执行此操作,但这需要一些工作。你的问题很广泛,所以我没有包含任何代码,但我已经概述了基本步骤作为起点。

1) You'll need to add a JavaScript event handler to watch the dropdown, when the 'add new' option is selected it will tr​​igger an Ajax request.

2) Ajax 请求将呈现创建操作(模式框对用户来说会很好)。

3) 当用户提交表单时,它将通过 Ajax 更新。

4) 通过 Ajax 重新加载下拉菜单以显示新公司。

如您所见,大部分复杂性都在 JS 方面,而不是在 Rails 方面 :)

于 2014-09-29T19:07:30.930 回答