扩展ActiveRecord :: Base

zer0uno

如果我做这样的事情:

class ActiveRecord::Base
  def self.encrypt(*attr_names)
    encrypter = Encrypter.new(attr_names)

    before_save encrypter
    after_save  encrypter
    after_find  encrypter

    define_method(:after_find) { }
  end
end
  1. 我必须在哪里保存该文件?
  2. 需要一个特殊的名字吗?
  3. 我必须打个电话require吗?
  4. 我可以将其保存在模型文件夹中吗?
  5. 在模型文件夹中声明的类是否可以在不调用的情况下从模型文件夹中的其他类看到require
克里斯蒂安·比卡(Cristian Bica)
  1. config / initializers / whatever.rb
  2. 没有
  3. 不,...初始化程序在应用程序启动时加载
  4. 没有
  5. 是的。Rails自动加载将搜索它。

做您想做的事情的轨范方式是:在lib / encryptable.rb中创建一个文件(如果您在rails 4上,则在app / models / concerns中),该文件定义了您的方法模块。然后,您可以在模型中执行include Encryptable或(对于所有模型)在初始化程序中:

ActiveRecord::Base.class_eval do
  include Encryptable
end

在此处阅读有关Rails 4的更多关注点:如何在Rails 4中使用关注点

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

扩展ActiveRecord :: Base

来自分类Dev

扩展ActiveRecord :: Base无法正常工作

来自分类Dev

覆盖ActiveRecord :: Base

来自分类Dev

如何成功继承ActiveRecord :: Base?

来自分类Dev

使用ActiveRecord :: Base.connection的正确方法

来自分类Dev

如何传递ActiveRecord :: Base类的哈希值

来自分类Dev

将变量添加到ActiveRecord :: Base

来自分类Dev

在模型之间共享ActiveRecord :: Base枚举

来自分类Dev

用Postgresql扩展模型ActiveRecord

来自分类Dev

为什么新的Base()无法传递给<?扩展Base>?

来自分类Dev

{%扩展了“ base.html”%}未连接静态

来自分类Dev

ActiveRecord扩展模块应放在哪里?

来自分类Dev

如何为ActiveRecord扩展gem编写测试

来自分类Dev

ActiveRecord扩展模块应放在哪里?

来自分类Dev

ActiveRecord :: Base.connection.execute的受影响的行

来自分类Dev

从另一个类和ActiveRecord :: Base继承

来自分类Dev

为什么Rails 5使用ApplicationRecord而不是ActiveRecord :: Base?

来自分类Dev

ActiveRecord :: Base.connection.execute(sql)。每个都不返回数据

来自分类Dev

Sidekiq安装-未初始化的常数ActiveRecord :: Base(NameError)

来自分类Dev

使用ActiveRecord :: Base.connection返回哈希而不是数组

来自分类Dev

调用“ ActiveRecord :: Base.create”时,如何调用“创建”?

来自分类Dev

从另一个类和ActiveRecord :: Base继承

来自分类Dev

类用户的超类不匹配-从ActiveRecord :: Base继承

来自分类Dev

Javascript-从base64图像获取扩展名

来自分类Dev

为Django管理员扩展base_site.html

来自分类Dev

相当于Java Class的C#扩展Base>?

来自分类Dev

Django:在Django管理中扩展base.html

来自分类Dev

Symfony:模板,检查base.html.php是否已扩展

来自分类Dev

尽管模板中存在base.html,但Django AllAuth不会扩展'base.html'

Related 相关文章

  1. 1

    扩展ActiveRecord :: Base

  2. 2

    扩展ActiveRecord :: Base无法正常工作

  3. 3

    覆盖ActiveRecord :: Base

  4. 4

    如何成功继承ActiveRecord :: Base?

  5. 5

    使用ActiveRecord :: Base.connection的正确方法

  6. 6

    如何传递ActiveRecord :: Base类的哈希值

  7. 7

    将变量添加到ActiveRecord :: Base

  8. 8

    在模型之间共享ActiveRecord :: Base枚举

  9. 9

    用Postgresql扩展模型ActiveRecord

  10. 10

    为什么新的Base()无法传递给<?扩展Base>?

  11. 11

    {%扩展了“ base.html”%}未连接静态

  12. 12

    ActiveRecord扩展模块应放在哪里?

  13. 13

    如何为ActiveRecord扩展gem编写测试

  14. 14

    ActiveRecord扩展模块应放在哪里?

  15. 15

    ActiveRecord :: Base.connection.execute的受影响的行

  16. 16

    从另一个类和ActiveRecord :: Base继承

  17. 17

    为什么Rails 5使用ApplicationRecord而不是ActiveRecord :: Base?

  18. 18

    ActiveRecord :: Base.connection.execute(sql)。每个都不返回数据

  19. 19

    Sidekiq安装-未初始化的常数ActiveRecord :: Base(NameError)

  20. 20

    使用ActiveRecord :: Base.connection返回哈希而不是数组

  21. 21

    调用“ ActiveRecord :: Base.create”时,如何调用“创建”?

  22. 22

    从另一个类和ActiveRecord :: Base继承

  23. 23

    类用户的超类不匹配-从ActiveRecord :: Base继承

  24. 24

    Javascript-从base64图像获取扩展名

  25. 25

    为Django管理员扩展base_site.html

  26. 26

    相当于Java Class的C#扩展Base>?

  27. 27

    Django:在Django管理中扩展base.html

  28. 28

    Symfony:模板,检查base.html.php是否已扩展

  29. 29

    尽管模板中存在base.html,但Django AllAuth不会扩展'base.html'

热门标签

归档