【问题标题】:ActionView::Template::Error: ActionView::Template::Error: undefined method `[]' for nil:NilClassActionView::Template::Error: ActionView::Template::Error: undefined method `[]' for nil:NilClass
【发布时间】:2015-08-08 08:47:42
【问题描述】:

我有一个基本的静态网页。

 class StaticPagesController < ApplicationController
  def home
  end
 end

还有一个只有标题的 home.html.erb。这在开发中工作得非常好,但测试

 test "should get home" do
    get :home
    assert_response :success
    assert_select "title","home | #{@base}"
 end

因错误而失败

ActionView::Template::Error: ActionView::Template::Error: undefined method []' for nil:NilClass 

在 application.html.erb 中显示错误

<%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>

这是显示为导致错误的行。是什么导致了问题?

当我撤销 stylesheet_link_tag 时,它的工作原理。

 *= require_tree 
 *= require_self
 @import "bootstrap-sprockets";
 @import "bootstrap"; 

这是我的 application.css。样式表目录下还有另外两个 scss 文件。

发现问题并解决。但不明白为什么会这样。 Bootstrap 必须移动到同一目录中的 sass 文件中,并且没有错误。但为什么会这样?它正在开发中。

【问题讨论】:

    标签: ruby-on-rails erb minitest


    【解决方案1】:

    出现此错误是因为应用正在寻找 .scss 扩展名。正如你所说,你的文件名是application.css,将其重命名为application.css.scss,它会起作用。

    【讨论】:

      猜你喜欢
      • 2017-08-28
      • 1970-01-01
      • 2015-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多