使用 ajax 的简单方法。我可以告诉你路径
1- 在更改行业名称时,您需要向控制器发送 ajax 调用。
前 -
$('#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- 对控制器执行操作(前 company_lists)以从此 ajax 调用中获取公司列表。并在 ajax 调用中用这个 acrion 的 url 替换 /get_company_lists_url。并通过您的params[industry_id] 获取@comapany_lists
3- 做一个像_companies_lists.html.erb 的部分
并使用与您在f.collection_select(:industry_id, Company.all, :id, :name) 中使用的名称相同的名称创建一个select_tag,您可以通过浏览器中的inspect 元素获取名称。并且在部分(假设您的下一个选择框名称类似于 - comapny[industry_id])
<%= select_tag "comapny[industry_id]", options_from_collection_for_select(@comapany_lists, :id, :name) %>
注意-这里你的 @comapany_lists 是你从 ajax 调用中得到的变量
4- in js.erb (ex- company_lists.erb)
$('#your_company_lists_div_id').html("j render 'companies_lists'");
注意这里your_company_lists_div_id是div的id,你想在其中显示你选择的与行业相关的公司列表
summary- 只需使用 ajax 调用更改您的行业并使用选定的公司列表呈现部分。
希望这对你有用,谢谢,如果有任何问题,你可以在评论中提问。