【问题标题】:Devise `user_signed_in?` inside `.js.erb` file `NoMethodError`在 `.js.erb` 文件 `NoMethodError` 中设计 `user_signed_in?`
【发布时间】:2018-09-06 03:31:50
【问题描述】:

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

  var user_signed_in = <%= user_signed_in? %>;
  if(user_signed_in){
      // run code here
  }

从外观上看,带有.js.erb 文件扩展名。这应该有效。我可以在使用这个 JS 文件的视图中使用user_signed_in?。那为什么呢?

【问题讨论】:

  • 试试这个`var user_signed_in = "";`
  • @Vishal 不起作用。
  • 不应该吗? &lt;%= user_signed_in? %&gt;。另外,你能在application布局中添加这个吗?
  • 为什么在 app/assets/javascripts/ 下有一个 *.js.erb 文件?您不应该在 app/views/ 下的某个视图中使用它吗?
  • @RicardoGreen 基本上,为什么任何解决方案都不起作用,因为你没有遵循 ror 的概念,你不应该使用 js 文件夹中的 js.erb 文件,“user_signed_in?”只是助手,您无法访问视图文件夹之外的内容。您正在尝试访问 js 文件夹。这就是为什么它给你错误。请遵循正确的结构

标签: javascript ruby-on-rails devise


【解决方案1】:

试着做这样的事情

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多