ActionView :: Template :: Error:ActionView :: Template :: Error:未定义的方法`[]'为nil:NilClass

时间:2015-08-08 08:47:43

标签: ruby-on-rails erb minitest

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

 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文件中,并且没有错误。但为什么会这样呢?它致力于发展。

1 个答案:

答案 0 :(得分:3)

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