使用MySQL数据库,Formtastic和Active Admin级联下拉列表

时间:2013-02-07 14:59:56

标签: ruby-on-rails formtastic

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

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

我希望在服务选择下方有另一个选择框,其中填充了团队模型中的团队(MySQL数据库中的团队表),这取决于用户从服务选择中选择的内容。

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

1 个答案:

答案 0 :(得分:1)

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

您需要一个JS来监视Service select中的更改,另一个需要根据该选择以某种方式修改Team select。为此,你有一堆选项,但它确实不是Formtastic问题,除了可能为你的JS提供正确的标记之外。

过去,我在不同时间完成了所有这些工作:

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

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

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