Rails 在 ActiveRecord::Base 中添加方法

sec · 发布于 2017年06月06日 · 最后由 sec 回复于 2017年06月06日 · 313 次阅读
27349

请问如何简化代码将所有Model中共用的def self.xx 方法添加到ActiveRecord::Base 里面?

class User < ActiveRecord::Base
...
  #def self.xx
  #end  
end

class Order < ActiveRecord::Base
...
  #def self.xx
  #end
end
共收到 5 条回复
2329

建个类在中间

1107

Rails 5 开始,会在 app/models 目录下额外创建一个模型基类 class ApplicationRecord < ActiveRecord::Base,你直接效仿,然后把你的公共逻辑放在里面即可,然后让你所有模型继承这个 ApplicationRecord

27349
1107jasl 回复

目前用的Rails 4.2 ,model 均继承自 ActiveRecord::Base, Rails 5 之后,才开始继承自 ApplicationRecord 。

1107
27349sec 回复

ApplicationRecord 长这样

class ApplicationRecord < ActiveRecord::Base
  self.abstract_class = true
end

这个是把最佳实践放进新项目的模板里,跟用 Rails 几无关

27349
1107jasl 回复

明白了,谢谢 jasl

27349 sec 关闭了讨论 06月06日 18:02
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册