我正在使用 Rails 2.3 和 Devise 1.0.11。由于我是 Rails 新手,请原谅任何明显的错误。
User 模型定义在 Rails 之外的一个文件夹中(名为“Common”),它在不同的组件之间共享,Rails 就是其中之一。我在 User 模型中包含了设计模块,如下所示:
class User < ActiverRecord::Base
devise :database_authenticable, :recoverable, :rememberable, :trackable
attr_accessible :email, :password, :password_confirmation
end
在 Rails 应用程序中,Devise 工作正常。
问题是当我尝试从 Common 文件夹运行 rspec 测试时,我得到undefined method 'devise'
. 我已经从这个问题尝试过这个答案,但它对我不起作用。我明白了。当我得到. 我猜它需要 Rails 环境中的一些东西,但不确定到底是什么。uninitialized constant ActionController
require 'action_controller'
uninitialized constant Rails
我还尝试通过devise_extension.rb
文件包含设计模块,config/initializers
以便根本不必从 Common 调用设计。
class User
devise :database_authenticable, :recoverable, :rememberable, :trackable
end
这似乎可以解决问题,直到我调用:password
一个视图并且我undefined method 'password'
清楚地知道我在那里也遗漏了一些东西。
不知道从这里去哪里,但任何帮助表示赞赏。