根据轨道上红宝石的另一个下拉列表填充下拉列表

时间:2012-09-26 14:46:05

标签: ruby-on-rails ruby ruby-on-rails-3 models

我的表单中有两个不同的字段,如下所示。

 <div class="field">
      <%= f.label :Master_Survey %><br/>
      <%= f.select :master_survey, Condition::MasterSurvey.all.map{|e| [e.Master_Survey_Code]}, { :prompt => 'Please Select' } %>
    </div>


    <div class="field">
      <%= f.label :Element_Code %><br/>
      <%= f.select :Element_Code, Condition::Element.all.map{|e| [e.Element, e.Element_Code]}, { :prompt => 'Please Select' } %>
    </div>

我希望第二个字段应该被禁用,除非第一个字段被选中。第二个字段Element code应根据所选的第一个字段Master Survey更改值。我在Master Survey Code表格中有一个Elements

1 个答案:

答案 0 :(得分:1)

如果这两个模型通过has_many/belongs_to或类似的方式相关,那么最好的选择是使用grouped_collection_select方法进行下拉。这将把你的下拉组织成一个标签列表(使用optgroup),然后做一些jQuery魔术,让2个下拉选择动态和链接!

Ryan Bates有RailsCast,详细解释了如何做到这一点。如果您没有专业订阅RailsCasts,我强烈建议您购买一个,这样您就可以轻松找到如何做这样的事情:)

希望这能指出你正确的方向!