Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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
如何在htm.erb文件的内联Ruby代码中使用javascript变量_Javascript_Ruby On Rails_Ruby - Fatal编程技术网

如何在htm.erb文件的内联Ruby代码中使用javascript变量

如何在htm.erb文件的内联Ruby代码中使用javascript变量,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我在一个选择框中收集了一组数据,比如说@users=User.all。在更改时,我希望在javascript中获得一个与所选用户相关的变量,我的意思是这样的: $("user_select").change(function(e){ e.preventDefault(); user_id = $(this).val(); user = <%= @user.find(<user_id>) %> }) $(“

我在一个选择框中收集了一组数据,比如说
@users=User.all
。在更改时,我希望在javascript中获得一个与所选用户相关的变量,我的意思是这样的:

    $("user_select").change(function(e){
        e.preventDefault();
        user_id = $(this).val();
        user = <%= @user.find(<user_id>) %>
    }) 
$(“用户选择”)。更改(功能(e){
e、 预防默认值();
user_id=$(this.val();
用户=
}) 
可能吗?或者我必须把整个集合放在javascript变量中,然后从那里得到它

可能吗

不是这样的,不是。你只有两个选择:

  • 服务器端查找:向服务器发出另一个请求,在其中传递
    user\u id
    并检索用户数据

  • 客户端查找:如您所述,在页面上嵌入来自所有用户的数据,并根据
    user\u id
    选择其中一个

  • 可能吗

    不是这样的,不是。你只有两个选择:

  • 服务器端查找:向服务器发出另一个请求,在其中传递
    user\u id
    并检索用户数据

  • 客户端查找:如您所述,在页面上嵌入来自所有用户的数据,并根据
    user\u id
    选择其中一个


  • 我用一种简单的方式思考,正如@sergio tulentsev所说的,您试图做的不是posble,而是使用更多的js,您不需要在rails集合中找到用户,如果您已经加载了所有用户,然后将其传递到一个javascript变量,在更改事件中,只需从那里选择一个,类似这样的

    当加载包含所有用户的页面时,只需将它们保存在javascript变量中作为json

    var users = <%= @users.to_json.html_safe %>;
    
    有了它,您将拥有一个json用户和该用户的所有值,然后您可以在javascript上执行类似于
    user.name
    的操作来获取这些值


    我使用jquery是因为在您的代码示例中,您正在使用它。

    我用一种简单的方式思考,正如@sergio tulentsev所说,您试图做的不是posble,而是使用更多的js,您不需要在rails集合中找到用户,如果您已经加载了所有用户,那么只需将它们传递到javascript变量并在更改事件中,只要从那里选择一个,像这样的

    当加载包含所有用户的页面时,只需将它们保存在javascript变量中作为json

    var users = <%= @users.to_json.html_safe %>;
    
    有了它,您将拥有一个json用户和该用户的所有值,然后您可以在javascript上执行类似于
    user.name
    的操作来获取这些值


    我使用jquery是因为在您的代码示例中您正在使用它。

    谢谢Sergio!谢谢你,塞吉奥!ajax请求怎么样?ajax请求怎么样?