两个依赖于Rails模型中数组的下拉菜单项

Two dependent drop down menu items from arrays in model in Rails

本文关键字:数组 菜单项 模型 Rails 两个 依赖于      更新时间:2023-09-26

我搜索了/stackoverflow几个小时,但没有找到任何符合我要求的东西。我是rails的新手,我正在rails 4.2.4中的bug跟踪系统上工作。这里我有一个名为Bug的类。关于bug的创建,我有两个下拉菜单,将用来自model的数组值填充。我的模型是这样的:

class Bug < ActiveRecord::Base
    belongs_to :creator, :class_name => "User", :foreign_key => "creator_id"
    belongs_to :developer, :class_name => "User", :foreign_key => "developer_id"
    TYPE = ['Feature', 'Bug']
    FEATURE_STATUS = ['New', 'Started', 'Completed']
    BUG_STATUS = ['New', 'Started', 'Resolved']
    validates :title, :presence => true, :uniqueness => true
    validates :status, :type, :presence => true
    has_attached_file :screen_shot
    validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"]
end

有一些代码来自_form.html。Erb文件,它将显示下拉选项:

...
...
...
<div class="form-group">
    <%#= f.label :bug_type, class: "col-sm-2 control-label" %>
    <%= f.label :bug_type, t('.bug_type') + ":" %>
    <%= f.select :bug_type,
    Bug::TYPE,
    :prompt => "Select bug type:"
    %>
</div>
<div class="form-group">
    <%#= f.label :status, class: "col-sm-2 control-label" %>
    <%= f.label :status, t('.status') + ":" %>
    <%= f.select :status,
    Bug::FEATURE_STATUS,
    :prompt => "Select status:"
    %>
</div>
...
...
...

当前,我的代码在第一个下拉列表中显示数组Bug::TYPE的值,在第二个下拉列表中显示Bug::FEATURE_STATUS的值。我的问题是如何填充第二个下拉与数组值取决于第一个下拉值?也就是说,如果用户从第一个下拉列表中选择了一个值'Feature',那么第二个下拉列表应该显示FEATURE_STATUS数组的值。如果用户从第一个下拉列表中选择了一个值'Bug',那么第二个下拉列表应该显示数组FEATURE_BUG的值。

我是新手,这是我在这里问的第二个问题。任何帮助都将非常感激。

你必须使用JQuery才能做到这一点:

$('#select_id').on('change', function() {
  //populate the second one here
});

,然后查看这里了解如何填充select:

的更多细节

如何更改