美文网首页
2018-08-07-总结作用域

2018-08-07-总结作用域

作者: 护念 | 来源:发表于2018-08-07 20:54 被阅读0次

现在遇到的作用域主要有这么几种:控制关联作用域、model 作用域、关联作用域,下面区分下:

model 作用域

作用:获取查询数据

class User < Application
  scope :active_user, ->{where(active: true)}
end

1、这个例子等价于在User中定义实例方法
2、它和实例方法区别在于,当存在条件判断时,作用域可以返回空关系(后面继续接其它方法)不报错
3、当存在参数/比较复杂时,推荐写成实例方法

控制关联作用域

作用:隔离关联/同空间关联

module Application
  module Business
    class Supplier < ApplicationRecord
      has_one :account
    end

    class Account < ApplicationRecord
      belongs_to : supplier
    end
  end
end

理解:个人认为应该是,当model比较多时,将需要建立关联的model放在相同module路径下,便于分割不同的model作用。

关联作用域

作用:关联方法查询数据

class Author < ApplicationRecord
  has_many :books,->{where(published: true)}
end

理解:既然model可以通过作用域,获取数据;那么关联也可以这样快速获取数据

相关文章

  • 2018-08-07-总结作用域

    现在遇到的作用域主要有这么几种:控制关联作用域、model 作用域、关联作用域,下面区分下: model 作用域 ...

  • JavaScript词法作用域

    作用域 章节直通车: 作用域词法作用域动态作用域总结 作用域的工作机制分为两种,一种是众所周知的词法作用域,另一个...

  • 作用域和闭包

    目录 概述 作用域编译过程词法作用域全局作用域函数作用域 闭包循环和闭包闭包的用途性能 总结 概述 作用域和闭包一...

  • 作用域、二义性和extern

    一个C语言变量的作用域可以是代码块 作用域,函数作用域或者文件作用域。代码块是{}之间的一段代码。 总结

  • 作用域、作用域链(个人学习笔记)

    图解作用域、作用域链 作用域链形成过程: 总结: 函数在创建时会取得当前作用域的执行期上下文,当函数执行时...

  • 春招cvte面经

    cvte面试总结 css三角形border-width 作用域链最外层是全局作用域,每个函数是一个局部作用域,嵌套...

  • Python中的闭包是什么?

    目录 作用域(scope) 闭包的定义 闭包的作用 总结 2018.4.15更新了对于函数作用域的理解内容 1.作...

  • js作用域

    1 - 作用域 1.1 作用域概述 全局作用域 局部作用域(函数作用域) 1.2 全局作用域 1.3 局部作用域 ...

  • 作用域,作用域链

    1 - 作用域 1.1 作用域概述 全局作用域 局部作用域(函数作用域) 1.2 全局作用域 1.3 局部作用域 ...

  • 变量作用域

    变量作用域:静态作用域、动态作用域JS变量作用域:JS使用静态作用域JS没有块级作用域(全局作用域、函数作用域等)...

网友评论

      本文标题:2018-08-07-总结作用域

      本文链接:https://www.haomeiwen.com/subject/hcqzvftx.html