Javascript 在`.js.erb`文件`.NoMethodError中设计'user\u signed\u in?``

Javascript 在`.js.erb`文件`.NoMethodError中设计'user\u signed\u in?``,javascript,ruby-on-rails,devise,Javascript,Ruby On Rails,Devise,在我的app/assets/javascripts/sample.js.erb文件中有这样的代码 var user_signed_in = <%= user_signed_in? %>; if(user_signed_in){ // run code here } var user_signed_in=; 如果(用户登录){ //在这里运行代码 } 从外观上看,它具有.js.erb文件扩展名。这应该行得通。我可以在使用此JS文件的视图中使用用户\u sig

在我的
app/assets/javascripts/sample.js.erb
文件中有这样的代码

  var user_signed_in = <%= user_signed_in? %>;
  if(user_signed_in){
      // run code here
  }
var user_signed_in=;
如果(用户登录){
//在这里运行代码
}

从外观上看,它具有
.js.erb
文件扩展名。这应该行得通。我可以在使用此JS文件的视图中使用
用户\u signed\u in?
。那为什么呢?

试着做这样的东西

<% if current_user  %>
  <%= link_to "Add New Event",new_event_path %>
<% end %>


试试这个'var user_signed_in=“”`@Vishal不起作用,不是吗<代码>。另外,您可以在
应用程序
布局中添加此文件。为什么在app/assets/javascripts/下有一个*.js.erb文件?你不应该在app/views/?@RicardoGreen下的某个视图中使用它吗?基本上,为什么任何解决方案都不起作用?因为你没有遵循ror的概念,你不应该使用js文件夹中的js.erb文件,“user\u signed\u in?”只是帮助程序,你不能访问视图文件夹之外的文件。您正在尝试访问js文件夹中的文件。这就是为什么它会给你错误。请按照正确的结构去做