在选择名称时,如何访问值并将其传递给 Controller ​​/模型,以便我可-6ren">
gpt4 book ai didi

ruby-on-rails - 如何从下拉列表中传递选定的值并将其作为 Rails 中级联下拉列表的参数访问

转载 作者:太空宇宙 更新时间:2023-11-03 16:14:18 25 4
gpt4 key购买 nike

已编辑:我正在尝试实现级联下拉。

在我的第一个下拉列表中,我得到了所有不同的名称。

<%= f.input :names, collection: names.distinctnames, :label => "Select Name" %>

在选择名称时,如何访问值并将其传递给 Controller ​​/模型,以便我可以根据值进行过滤并将其绑定(bind)到下一个下拉列表。

在我的模型中,我有以下范围

scope :distinctnames, ->{ Names.distinct.pluck(:names)}

在这里,我想添加另一个范围,为所选名称提供城市。

那么,我如何在我的 View 中选择数据并在下一个下拉列表中获取所有值。

如果这是错误的方法,有人可以通过示例向我建议替代方法。

我的代码

<!DOCTYPE html>
<html>
<head>
<script>
$(document).on('change', '#names_id', function(){
var custId = $(this).val();
return custId;

});
</head>
<body>
<div class="container">
<div class="row">
<div class="col-lg-6 col-lg-offset-3">
<div class="panel panel-primary">
<div class="panle-heading">Panel Primary</div>
<div class="panel-body">
<%= simple_form_for @ruby, url:{action: 'create'}, html: {class: 'form'} do |f| %>
<%= f.select :names_id, options_for_select(Names.distinctnames), {}, {:multiple => true} %>
<%= f.select :city_name, options_for_select(Names.where(names_id: custId).pluck(:city_name)), {}, {:multiple => true} %>
<% end %>
</div>
</div>
</div>
</div>
<div>
</body>
</html>

在这里,在加载 View 时,我得到了#<# 的未定义局部变量或方法“custId”

如何将所有其他下拉列表加载为空,然后将所选下拉列表值中的值绑定(bind)到第二个下拉列表。

最佳答案

据我了解,您有多个下拉列表,但有依赖关系,例如 drop-down list 1 中的 selected 值将影响 中的值>下拉列表 2,在这种情况下到达 Controller 操作将需要提交表单,如果我的想法是正确的,我有不止一个想法:

第一个

您将使用 javascriptJQuery 库将此动态行为添加到您的页面,场景如下:

1- 用户将选择值

2- select 时使用 js 触发 actionListner

3-向服务器发送请求

4-根据你发给服务器的参数获取数据

5-绑定(bind)服务器返回数据后启用下一个下拉列表

这个解决方案不需要你刷新页面,我认为这会让用户满意。

第二种方案

您将把 actionListner 放在 drop-down 上,并在用户选择值时提交表单。

这需要在你的服务器端进行一些验证,再加上一些努力来保存填充的数据,如果有其他输入(将它们保存在实例变量中,我的意思是像 @select_drop_1 和在输入中使用它们,因为用户会觉得没有遗漏这些值)。

第三种方案

如果在用户打开表单后提供此数据是适用的,我的意思是分组此数据,进行按这些不同名称对城市进行分组的查询,以便在用户选择时一个名称,一个简单的 js 代码将运行启用并将数据绑定(bind)到下一个 drop-down 等等。

如果我是你,我会选择 firstthird 选项,请原谅我,因为我不知道你的应用程序的架构,我不知道是否它适用于制作 grouping 我想 Names 有它的表,还有另一个叫做 City

希望对您有所帮助。

关于ruby-on-rails - 如何从下拉列表中传递选定的值并将其作为 Rails 中级联下拉列表的参数访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50805333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com