首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用rails中的前一个字段过滤选择字段

使用rails中的前一个字段过滤选择字段
EN

Stack Overflow用户
提问于 2017-10-14 06:19:34
回答 1查看 30关注 0票数 0

我有一个属于某行业的模型公司。

当一个附属公司注册时,我想按行业过滤公司的名称。因此,当用户选择行业时,下一个字段仅显示属于该行业的公司的名称。

在表单上,我有这个:

代码语言:javascript
运行
复制
<%= f.collection_select( Industry.all, :id, :name) %>
<%= f.collection_select(:industry_id, Company.all, :id, :name) %>

它为我提供了所有行业和公司的选择,但是当行业被选择时,我如何过滤要更改的公司名称?

EN

回答 1

Stack Overflow用户

发布于 2017-10-15 02:59:42

使用ajax完成此操作的简单方法。我可以给你指路

1-在更改行业名称时,您需要向控制器发送一个ajax调用。前-

代码语言:javascript
运行
复制
  $('#industry_select_box_id').on('change', function(){
    var industry_id = $('#industry_select_box_id :selected').val();
    $.ajax({
      url: "/get_company_lists_url",
      type: "GET",
      data : {
        id: industry_id
      },
      dataType: "script",
    });
  })

2-对您的控制器执行一个操作(ex- company_lists),以从该ajax调用中获取公司列表。并在ajax调用中将/get_company_lists_url替换为此acrion的url。用你的params[industry_id]获取@comapany_lists

3-使用你在f.collection_select(:industry_id, Company.all, :id, :name)中使用的名字做一个类似_companies_lists.html.erb的部分,并用相同的名字做一个select_tag,你可以在浏览器中通过inspect元素得到名字。和部分(假设您的下一个选择框名称类似于- comapnyindustry_id)

代码语言:javascript
运行
复制
<%= select_tag "comapny[industry_id]", options_from_collection_for_select(@comapany_lists, :id, :name) %>

注意-这里您的@comapany_lists是您从ajax调用中获得的变量

4英寸js.erb (不含company_lists.erb)

代码语言:javascript
运行
复制
$('#your_company_lists_div_id').html("j render 'companies_lists'");

注意,这里的your_company_lists_div_id是div的id,您想要在其中显示与行业相关的所选公司列表

摘要-简单的ajax调用,改变你的行业,并用选定的公司列表呈现部分。希望这能为你工作,谢谢你,如果你有任何问题可以在评论中询问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46738753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档