Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails:基于先前的选择填充选择框_Ruby On Rails_Ruby_Prototype - Fatal编程技术网

Ruby on rails RubyonRails:基于先前的选择填充选择框

Ruby on rails RubyonRails:基于先前的选择填充选择框,ruby-on-rails,ruby,prototype,Ruby On Rails,Ruby,Prototype,我有一组3个集合_选择,我想过滤下一个选择。在第一个选择框中选择项目后,应限制第二个和第三个选择框的可能值 类似的数据模型如下所示 表和字段 锁 锁定id 品牌识别码 硕士学位 普通身份证 锁牌 品牌识别码 主钥匙 硕士学位 品牌识别码 常规键 普通身份证 品牌识别码 因此,在填写添加新锁的表格时,会有品牌、主锁和常规锁的选择框。在选择品牌时,它会将主密钥和常规密钥限制为仅属于所选品牌的密钥 我已经找到了一些关于如何做到这一点的部分示例,但是没有一个是完整的。我希望能提供一个

我有一组3个集合_选择,我想过滤下一个选择。在第一个选择框中选择项目后,应限制第二个和第三个选择框的可能值

类似的数据模型如下所示

表和字段

    • 锁定id
    • 品牌识别码
    • 硕士学位
    • 普通身份证
  • 锁牌
    • 品牌识别码
  • 主钥匙
    • 硕士学位
    • 品牌识别码
  • 常规键
    • 普通身份证
    • 品牌识别码
因此,在填写添加新锁的表格时,会有品牌、主锁和常规锁的选择框。在选择品牌时,它会将主密钥和常规密钥限制为仅属于所选品牌的密钥


我已经找到了一些关于如何做到这一点的部分示例,但是没有一个是完整的。我希望能提供一个完整的示例来说明如何实现这一点。

您所需要做的就是将选择绑定到一个事件侦听器,该事件侦听器触发一个ajax请求,填充包含后续选择的其他两个部分。i、 e

<%= form_for @thing, :remote => true do, :update => 'second_form' |f| %>
  <%= hidden_field_tag 'form_partial', :value => 'form_2' %> 
  <%= select_tag :some_param, [[a,a],[b,b],[c,c]] :class => 'submittable' %> 
  <%= f.label :checked %>
  <%= thing.name %>
<% end %>
<div id='second_form'>
</div>
<div id='third_form'>
</div>

class ThingController < ApplicationController
  def update
    checkboxes = some_logic_to_select_checkboxes from params[:some_params]
    render :partial => params[:form_partial], :locals => {:select_menu => select_menu}
  end
end

$('.submittable').live('change', function() {
  $(this).parents('form:first').submit();
  return false;
});
true-do,:update=>“第二种形式”| f |%>
'表格2'>
'可提交'>
类ThingController<应用程序控制器
def更新
复选框=一些逻辑从参数中选择复选框[:一些参数]
render:partial=>params[:form_partial],:locals=>{:select_menu=>select_menu}
结束
结束
$('.submittable').live('change',function(){
$(this.parents('form:first').submit();
返回false;
});

您的表单部分应该包含您的表单,其中填充了您希望启用的任何选项。重复表单是多余的。

我想知道如何使用下拉选择框而不是复选框来实现这一点。您可以相应地更新吗?您可以很容易地查找“选择”帮助程序而不是复选框并进行替换。这个理论应该足够好让你开始。