我试图避免使用我的session[:referred_by]
,而想使用request.referrer
。但是,我的 RSpec 测试失败了,因为 TestRequest
没有存储 request.referrer
因此,为了使 Rspec 测试正常工作,我必须执行以下操作。有没有办法让它变得更好:
referrer = request.referrer ? request.referrer : '/'
redirect_to referrer, :alert => error_message
最佳答案
ActionDispatch::TestRequest
扩展了 ActionDispatch::Request
,它扩展了 Rack::Request
。
方法定义如下
def referer
@env['HTTP_REFERER']
end
alias referrer referer
据我所知,您可以使用 request.env
访问 RSpec 测试中的环境变量。这意味着,应该可以设置类似
request.env['HTTP_REFERER'] = 'http://example.com'
当然,这取决于您使用的 RSpec 示例组的类型。
关于ruby-on-rails - 我如何在我的 RSpec 中设置 request.referrer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12591763/