Javascript 将信息从ruby传递到js脚本标记

Javascript 将信息从ruby传递到js脚本标记,javascript,ruby-on-rails,Javascript,Ruby On Rails,我有一个Rails应用程序,它在检查访问用户配置文件页面的用户是否是当前用户(使用ruby代码)后,根据条件逻辑的结果调用JavaScript方法,如下所示 有没有一种方法可以将用户名(在ruby代码中提供)传递到脚本标记中,这样我就可以将其传递到被调用的javascript函数中(除了我传递的其他参数之外) /views/users/show.html.erb <% if current_user?(@user) %> #@user represents the user who'

我有一个Rails应用程序,它在检查访问用户配置文件页面的用户是否是当前用户(使用ruby代码)后,根据条件逻辑的结果调用JavaScript方法,如下所示

有没有一种方法可以将用户名(在ruby代码中提供)传递到脚本标记中,这样我就可以将其传递到被调用的javascript函数中(除了我传递的其他参数之外)

/views/users/show.html.erb

<% if current_user?(@user) %> #@user represents the user who's profile page is being visited

        <script type='text/javascript'> 
        $(document).ready(function() {     #I want to get <%= @user.name %> inside here
          var currentuser = true; 
        app.views.user_view.compTemplates(currentuser)});
       </script>

<% else %>

   ...code ommitted...

<% end %>
#@user表示正在访问其个人资料页面的用户
$(document).ready(function(){#我想进入这里
var currentuser=true;
app.views.user\u view.compTemplates(currentuser)});
…代码已写入。。。
更新:

根据这个问题的第一个答案的建议,我在脚本标签中做了这项工作

   var currentusername =  <%=  @user.name %>;
var currentusername=;

然而,一旦评估(在本例中为“Veronica”),Veronica第一次出现在js代码中,并且现在注册了一个错误“Veronica未定义”

我相信您正在寻找这个:

举例如下:

$('some_element').replaceWith('<%=j render 'some/element_template' %>');

内联Ruby必须进入#{}标记中

var currentusername='#{}';

谢谢,我尝试了您所做的,并将其作为参数传递给compTemplates方法——compTemplates(currentuser,userName)——但当我在接收它的视图中执行consolelog(userName)时,它表示用户名(即已计算的实际用户名,而不是变量userName)“未定义”。你能解释一下原因吗?你能确认@user确实有名字吗?(
print@user.inspect
)可能在模板中(而不是脚本部分)?另外,您是否尝试过
escape\u javascript
?你能检查一下这个物体吗<代码>警报(JSON.stringify(用户名))。我们试图找到它失败的地方;在show.html.erb页面中,它说“Veronica”(@user.name)在javascript控制台中是未定义的。我也这样做了,但有相同的问题。stringify(userName)变量(在我分配它之后)我什么都不知道。计算完成后,计算名称(Veronica)第一次出现在js代码中,而且之前没有定义过,因此“Veronica”是“未定义的”
$('some_element').replaceWith('<%= escape_javascript render 'some/element_template' %>');
<script type='text/javascript'> 
  $(document).ready(function() {
    var currentuser = true;
    var userName = <%= @user.name.to_json %>;
  app.views.user_view.compTemplates(currentuser)});
</script>
var currentusername =  '#{ <%= @user.name %> }';