0

我设法创建了一个从服务模型填充的下拉列表。服务模型由 MySQL 表管理。我使用了这段代码:

f.input :service, :as => :select #<-- :as not really needed, I know...

我想在服务选择下方有另一个选择框,该框根据用户从服务选择中选择的内容填充团队模型(MySQL 数据库中的团队表)中的团队。

例如,如果从服务选择中选择服务 1,则团队选择将填充数据库中的团队表中具有 service_id = 1 的外键的团队(团队 1、团队 2)。如果有人可以帮助如何插入正确的关联和 Formtastic 代码来实现这一点,我将不胜感激。

4

1 回答 1

1

如果您希望根据在另一个选择框中所做的选择来更改一个选择的内容(减少选项的数量),这主要是一个客户端编程问题——Formtastic 一旦发送到浏览器就无法修改 DOM。

您需要一个 JS 来观察服务选择中的变化,另一个来根据该选择以某种方式修改团队选择。为此,您在这里有很多选择,但这实际上不是 Formtastic 问题,除了可能如何呈现正确的标记以使您的 JS 工作。

在过去,我在不同的时间做了所有这些:

  1. 为每个可能的服务选择呈现一个单独的团队选择框,然后根据 JS 的需要在 DOM 中显示/隐藏正确的选择框

  2. 在 Team select 中的每个选项上呈现数据属性,注意它支持哪个服务,以便 JS 可以根据所选服务删除或禁用选项

我更喜欢#2,但在 Formtastic 中#1 可能更容易。

于 2013-02-25T06:12:50.480 回答