2018-08-08-关联扩展

一般情况下,我们在model关联(比如:has_many/belongs_to)后就会获取一组关联方法,但这些方法是有限的。

rails却赋予了我们扩展的权利,看用法

基本扩展

class Author < ApplicationRecord
  has_many :books do # 直接接 块 PS:这之间没有逗号
    def find_recent
      where('created_at > ?', 3.day.ago)
    end
  end
end

a = Author.first
a.books.find_recent

模块化扩展

module BooksExtend
  def find_recent
    where('created_at > ?', 3.day.ago)
  end
end

class Author < ApplicationRecord
  has_may :books, -> {extending BooksExtend}
end
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 你以为 现实是空乏的牢困 说不定 它只是恰好需要以这样丑陋的形状 让那些接踵而至的 迷失风向的人 趋向圆满罢了
    北畤阅读 306评论 0 0
  • 折腾了下下这个很2的问题。网上放的方法比较旧, Android5.1的话, 设置后当时生效, 重启后就失效了。 不...
    大大世界阅读 4,829评论 5 1
  • 堅持的三天,今日卻躲在幾平米的居所,看了部盜版的《我的特工爺爺》,吃著山藥紅棗飯,悠閒自在的坐在床頭堅持著一千字的...
    漂红残月阅读 269评论 0 0
  • 尤其是他看着网友的那忧郁眼神...
    哈哈哈哈水洗面膜和阅读 120评论 0 0