首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoMethodError:用于nil:NilClass的未定义方法`original_path_set‘

NoMethodError:用于nil:NilClass的未定义方法`original_path_set‘
EN

Stack Overflow用户
提问于 2014-04-15 19:58:14
回答 2查看 1.7K关注 0票数 1

我尝试用Travis CI测试我的Rails应用程序,并在控制器测试中得到了以下错误:

代码语言:javascript
复制
DaysController

    GET 'index'

An error occurred in an after hook

    NoMethodError: undefined method `original_path_set' for nil:NilClass

    occurred at /home/travis/build/violarium/ruby-moon/vendor/bundle/ruby/2.1.0/gems/rspec-rails-2.14.2/lib/rspec/rails/view_rendering.rb:121:in `block (2 levels) in <module:ViewRendering>'

问题是,相同的测试在本地成功通过。

在本例中,DaysController是一个简单的控制器,带有一些身份验证方法的模块:

代码语言:javascript
复制
module UserSession
  extend ActiveSupport::Concern

  private

  # Sign in existent user
  def sign_in(user)
    cookies.permanent[:remember_token] = user.remember_token
  end

  # Clear cookies
  def sign_out
    cookies[:remember_token] = nil
  end

  # Get current signed in user or nil
  def signed_in_user
    @current_user ||= User.find_by(remember_token: cookies[:remember_token])
  end

  # Check if user is signed in
  def signed_in?
    !signed_in_user.nil?
  end

  included do
    helper_method :signed_in?
  end
end
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-16 19:31:34

我不确定这是什么原因,但当我添加字符串时,问题就消失了:

代码语言:javascript
复制
cp config/travis/secrets.yml config/secrets.yml

这是新的rails 4.1存储秘密的方法。

票数 1
EN

Stack Overflow用户

发布于 2014-04-16 12:10:16

实际上,这可能是capybara/rspec-rails中的一个bug,尝试升级到最新的rails和capybara。

有关更多详细信息,请参阅https://github.com/rspec/rspec-rails/issues/860

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23093279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档