Ruby on rails 如何在页面代码中填充下拉选择

Ruby on rails 如何在页面代码中填充下拉选择,ruby-on-rails,Ruby On Rails,我有一个充满记录的模型。我希望用户能够从下拉菜单中选择这些项目之一。选中后,我希望它提供该记录,以便在页面上使用。它可以是部分的,也可以是任何方式。更改所选项目时,每次都会更新页面上的项目 我尝试了render_async gem,但无法使事件调用正常工作。使用普通javascript,我可以调用选项的值,但不能提取记录本身。要提取记录,可以使用表单并通过javascript提交。例如,如果您的模型名为Product,您可以在具有下拉/选择功能的视图中执行以下操作: = form_tag(pro

我有一个充满记录的模型。我希望用户能够从下拉菜单中选择这些项目之一。选中后,我希望它提供该记录,以便在页面上使用。它可以是部分的,也可以是任何方式。更改所选项目时,每次都会更新页面上的项目


我尝试了render_async gem,但无法使事件调用正常工作。使用普通javascript,我可以调用选项的值,但不能提取记录本身。

要提取记录,可以使用表单并通过javascript提交。例如,如果您的模型名为Product,您可以在具有下拉/选择功能的视图中执行以下操作:

= form_tag(products_path, method: :get, remote: true) do
  = select_tag :product, options_for_select(Product.all.map { |product| [product.name, product.id] }, selected: params[:product] ), include_blank: 'All products', class: '', onchange: 'document.getElementById("submitFilter").click();'
  = button_tag(type: 'submit', id: 'submitFilter', class: 'd-none')
当您选择一个产品时,它将对产品路径执行GET请求,因此在产品控制器索引操作中,您还需要响应JS,并且您需要一个index.JS.haml或.erb来处理数据并更新视图

产品控制器示例:

def索引 @products=Product.all 如果参数[:产品] @product=product.findparams[:product] 终止 回应待办事项|格式| format.html format.js 终止 终止 示例视图:

#product
  = render 'product'
示例index.js.haml

$product.html{escape_javascriptrender'product'}
在本例中,您需要一个保存数据的部分_product.html.haml。

能否为纯javascript添加一些代码?您是否用记录填充了select字段????如果是这样,在选择选项时,运行js函数,获取所选选项内的值或文本,以更新页面上的项目。