包含没有include语句的ruby模块 - 这是如何实现的?

时间:2012-02-03 02:23:45

标签: ruby-on-rails ruby rubygems devise

以下代码由devise生成。 我们怎样才能在这里使用“devise”将模块包含在我的User类中。 设计如何在这里得到认可? 我在这里看不到任何包含声明。它是否包含在ActiveRecord中?

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and     :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :name, :email, :password, :password_confirmation, :remember_me
end

1 个答案:

答案 0 :(得分:3)

当您加载Devise(可能通过Rails初始化程序)时,它使用Devise :: Model

扩展ActiveRecord :: Base类

See it in the devise source code

ActiveRecord::Base.extend Devise::Models