将Devise模块包含在Rails外部定义的用户模型中

时间:2013-01-02 22:12:50

标签: ruby-on-rails ruby rspec devise

我正在使用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'如此明显地我在那里也遗漏了一些内容时,这似乎就成了伎俩。

不确定从何处开始,但感谢任何帮助。

0 个答案:

没有答案