我正在使用Rails应用程序,但找不到如何处理相关的下拉列表。
我有3种型号:
-有几组的类别
-有几个成员的小组
- 成员

选择类别后,我希望该类别中的组填充第二个下拉列表(组和成员之间也是如此)。

我有以下表格(很明显,这不符合我的要求,因为我需要为特定模型购买所有物品)...

<div class="field">
<%= f.collection_select(:category, Category.find(:all), :id, :name, {:include_blank => 'Category'}) %>
</div>
<div class="field">
<%= f.collection_select(:group, Group.find(:all), :id, :name, {:include_blank => 'Group'}) %>
</div>
<div class="field">
<%= f.collection_select(:member, Member.find(:all), :id, :name, {:include_blank => 'Member'}) %>
</div>
<div class="actions">
<%= f.submit %>
</div>

使这些字段相关的最佳方法是什么?我在网上找到了几个与此相关的主题,但找不到真正的答案。

最佳答案

最好的方法是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);
  });
});

在您的 Controller 中:
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

现在,您不需要局部。

关于ruby-on-rails - 表格中与Rails相关的collection_select字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5311284/

10-12 06:14