Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.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
如何在RubyonRails应用程序中访问Javascript函数中的实例变量?_Javascript_Ruby On Rails - Fatal编程技术网

如何在RubyonRails应用程序中访问Javascript函数中的实例变量?

如何在RubyonRails应用程序中访问Javascript函数中的实例变量?,javascript,ruby-on-rails,Javascript,Ruby On Rails,我有一个编辑个人资料的表格。Rails会自动将表单id生成为“edit_profile_35;##”,其中##是当前用户的配置文件id(实例变量-@profile_id)。我需要将此表单id用于javascript函数。有没有办法在js中获取当前用户的配置文件id?或者有没有一种方法可以覆盖rails自动生成的id 是否使用普通的*.html.erb视图 你不能做一些像: <script type="text/javascript"> user_id = <%= @pr

我有一个编辑个人资料的表格。Rails会自动将表单id生成为“edit_profile_35;##”,其中##是当前用户的配置文件id(实例变量-@profile_id)。我需要将此表单id用于javascript函数。有没有办法在js中获取当前用户的配置文件id?或者有没有一种方法可以覆盖rails自动生成的id

是否使用普通的*.html.erb视图

你不能做一些像:

<script type="text/javascript">
    user_id = <%= @profile_id %>;
</script>

用户_id=;

您必须使用函数参数发送

.html.erb

<script type="text/javascript">
   var user_id = <%= @profile_id %>; // for integer
   var user_name = '<%= @profile_name %>'; // for string

   abc(user_id)// this is your function in .js file

</script>

假设控制器中有
@user={'name'=>'steve'}

现在,您的html页面可以呈现

现在让我们假设您希望能够访问.js文件中的@user;将thisThing和数据url添加到您的标记

在.js文件中
var userInfo=$('#thisThing').data('url')


现在,您的.js中有了userInfo(字符串)

是的,我确实使用html.erb视图。你的意思是说我可以把它包含在我的html.erb文件中?但是我如何访问我的.js文件中的用户id呢?我不知道你的js文件是如何存在的。但是您可以创建方法,然后传递参数,或者创建一个全局变量(就像在我的示例中,虽然我不建议这样做)。好的,谢谢。那么这是唯一的办法了?我想看看是否有一种方法不在函数调用中传递它。因为我的js函数(见下面的submitProfileForm)实际上是一个事件处理程序,只有在表单提交事件时才需要调用它;是的,这是访问.js文件中实例变量的唯一方法
 function abc(id){
   alert(""+id)
 }