【问题标题】:ActionView: :Template: :Error Object not supportedActionView: :Template: :Error 不支持对象
【发布时间】:2017-01-14 05:59:47
【问题描述】:

我一直在努力寻找这个问题的答案,显然我还没有做到。我尝试编写我的第一个代码,我可以毫无问题地打开服务器,但是当我打开它时,服务器会告诉我我的代码: TypeError:对象不支持此属性或方法 提取的源代码(第 7 行附近):

    CTYPE html>
<html>
  <head>
    <title>Programar101</title>
    <%= csrf_meta_tags %>

    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  </head>

  <body>
    <%= yield %>
  </body>
</html>

在我的命令提示符中,当错误发生时,它给了我这个:

ActionView::Template::Error (TypeError: Object doesn't support this property or method):
    4:     <title>APP</title>
    5:     <%= csrf_meta_tags %>
    6:
    7:     <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    8:     <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
    9:   </head>
   10:

app/views/layouts/application.html.erb:7:in `_app_views_layouts_application_html_erb__332994069_78270120'
  Rendering C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb within rescues/layout
  Rendering C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
  Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (60.1ms)
  Rendering C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
  Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (32.6ms)
  Rendering C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
  Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (3.0ms)
  Rendered C:/RailsInstaller/Ruby2.2.0/lib/ruby/gems/2.2.0/gems/actionpack-5.0.0.1/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb within rescues/layout (5146.8ms)

提前谢谢你

【问题讨论】:

  • 鉴于错误来自样式表包含行,您可以将样式表添加到问题中吗?

标签: ruby-on-rails ruby actionview


【解决方案1】:

我认为这个SO post 有一些很好的细节来理解这个问题。我遇到了确切的问题并跟踪了堆栈跟踪,似乎原因来自execjs。但是不同的是,更改 runtimes.rb 并不能解决问题。删除//= require_tree . 确实可以解决,但这也不是正确的解决方案,因为它是快速修复。

一个很好的解决方案是安装 Node,我 have heard 这解决了这个问题。我可以确认这为我解决了问题。我认为这与 runtimes.rb 文件以及 Windows 上的默认 JS 环境如何糟糕有关。

【讨论】:

  • 这不是同一个错误,所以我怀疑修复会是一样的。
  • 我不确定这是否是相同的错误,因为我的错误与此错误相同,因为样式表加载时出现问题,但是当我从 application.js 中删除 //= require_tree . 时,问题就消失了。快速修复解决方案是相同的。
  • 这是在不实际修复问题的情况下避免问题的另一种方法。如果您希望在您的应用中使用 JavaScript,请不要这样做。
  • 好的,在尝试了更多的事情并澄清之后,我改变了我的答案。请不要反对,我尽力而为
【解决方案2】:

您需要在第 6 行和第 7 行将 'application' 更改为 'default'。

<%= stylesheet_link_tag 'default', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_include_tag 'default', 'data-turbolinks-track': 'reload' %>

【讨论】:

  • 这显然是错误的。错误会消失,但现在您的应用中将没有样式表/JavaScript。
猜你喜欢
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 2017-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多