我正在使用Rails 2.3和Devise 1.0.11。请原谅任何明显的错误,因为我是Rails的新手。
用户模型在Rails之外的文件夹中定义(名为“Common”),它在不同组件之间共享,Rails就是其中之一。我在用户模型中包含了设计模块,如下所示:
class User < ActiverRecord::Base
devise :database_authenticable, :recoverable, :rememberable, :trackable
attr_accessible :email, :password, :password_confirmation
end
从Rails应用程序,Devise工作正常。
问题是当我尝试从Common文件夹运行rspec测试时,我得到undefined method 'devise'
。我已经从this answer尝试了this question,但它对我不起作用。我得到uninitialized constant ActionController
。当我require 'action_controller'
时,我得到uninitialized constant Rails
。我猜它需要Rails环境中的东西,但不确定究竟是什么。
我还尝试通过devise_extension.rb
中的config/initializers
文件包含设计模块,以便不必从Common调用设计。
class User
devise :database_authenticable, :recoverable, :rememberable, :trackable
end
直到我在一个视图中调用:password
并且undefined method 'password'
如此明显地我在那里也遗漏了一些内容时,这似乎就成了伎俩。
不确定从何处开始,但感谢任何帮助。