所以,我有一个标准的rails 3应用程序与authlogic。如果我不在浏览器中(在控制台或测试环境中),我就不能创建用户模型。
例如:我在rspec测试或我的控制台中有以下代码:
user = User.create(...user attributes...)
我得到这个错误:
NoMethodError: undefined method `cookies' for main:Object
我在网上找遍了,还是不明白。如有任何帮助,我将不胜感激。
编辑:所以,我又看了看周围,发现在文档中这样做:
include Authlogic::TestCase
然后我得到这个错误:
uninitialized constant Authlogic::TestCase
我也遇到过同样的问题。在您的应用程序中,您在哪里放置了以下行:
Authlogic::Session::Base.controller = Authlogic::ControllerAdapters::RailsAdapter.new(self)
当我将行放在environment.rb
文件或初始化器文件夹中的文件中时,我遇到了这个错误。
当我将这行放在我的ApplicationController
中时,我消除了这个问题。