Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.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
是否可以将jquery变量传递给.js.erb文件中的ruby/rails实例变量?_Jquery_Ruby On Rails - Fatal编程技术网

是否可以将jquery变量传递给.js.erb文件中的ruby/rails实例变量?

是否可以将jquery变量传递给.js.erb文件中的ruby/rails实例变量?,jquery,ruby-on-rails,Jquery,Ruby On Rails,好的,我调用的是js.erb partial,它调用的是html.erb partial。。但是,我需要将一个变量从jquery部分传递到html.erb部分 基本上: $(document).ready(function(){ $('#aidmodel_brand').change(function() { $("select option:selected").each(function () { var brand = ($(this).text());

好的,我调用的是js.erb partial,它调用的是html.erb partial。。但是,我需要将一个变量从jquery部分传递到html.erb部分

基本上:

$(document).ready(function(){
  $('#aidmodel_brand').change(function() {
    $("select option:selected").each(function () {
      var brand = ($(this).text());
      $('#modeler').html('<%= escape_javascript(render(:partial => "shared/model", :brand => @brand)) %>'); 
    });
  });
});
我希望以某种方式将var brand分配给实例变量@brand,以便我可以将所选选项从下拉菜单传递到rails partial,以生成下一个下拉菜单


谢谢

之所以不能按您希望的方式执行,是因为js.erb中的Javascript是在服务器上执行ruby之后在客户端执行的

那么这个-

<%= escape_javascript(render(:partial => "shared/model", :brand => @brand)) %>
现在要实现这个需求,您可以在ruby代码中呈现所有品牌部分,然后让js进行选择。差不多-

 $('#modeler').html(<%= escape_javascript(Brand.all.each{|b| render(:partial => "shared/model", :brand => b)}.join('')) %>)

 $(document).ready(function(){
  $('#aidmodel_brand').change(function() {
    $("select option:selected").each(function () {
      var brand = ($(this).text());
      var brand_finder = "." + brand
      var brand_block = $('#modeler').find(brand_finder)
      brand_block.show()  
    });
  });
 });
在shared/model中,您可以为brand块指定一个css类名,该类名与option:selected中的文本相同

 $('#modeler').html(<%= escape_javascript(Brand.all.each{|b| render(:partial => "shared/model", :brand => b)}.join('')) %>)

 $(document).ready(function(){
  $('#aidmodel_brand').change(function() {
    $("select option:selected").each(function () {
      var brand = ($(this).text());
      var brand_finder = "." + brand
      var brand_block = $('#modeler').find(brand_finder)
      brand_block.show()  
    });
  });
 });