Rails依赖于表单中的collection_select字段

我正在使用rails应用程序,但无法找到如何处理依赖的下拉列表。 我有3个型号: – 有几个组的类别 – 有几个成员的组 – 成员

选择类别后,我希望此类别中的组填充第二个下拉列表(组和成员之间的相同内容)。

我有以下表格(显然这不符合我喜欢的方式,因为我采取了特定型号的所有项目)…

'Category'}) %>
'Group'}) %>
'Member'}) %>

将这些字段依赖的最佳方法是什么? 我在网上找到了几个关于此的主题但却找不到答案。

最好的方法是使用AJAX调用。 在刚刚开始的填充类别下拉列表中。 并且在更改类别时进行ajax调用并填充组。 对于组下拉变化的成员也一样。

尝试这样的事情:

 $("#category']").click(function(){ var url = '/get_drop_down_options?category_id=' + $(this).val() $("#group").removeOption(/./) $.get(url, function(data) { $('#group').addOption(data, false); }); }); 

在你的控制器中:

 def get_drop_down_options val = params[:category_id] #Use val to find records options = YourModel.collect{|x| "'#{x.id}' : '#{x.label}'"} render :text => "{#{options.join(",")}}" end 

现在你不需要局部。

我会为每个字段使用不同的Id,并使用一些jquery动画和ajax魔法:当单击一个字段时,我会进行ajax调用以检索子组的所有记录,一旦我得到它们,使得出现div与向下滑动动画或类似动画。