类:Mongoid::Association::Proxy

继承:
对象
  • 对象
显示全部
扩展方式:
可转发
包括:
Marshalable , Threaded::Lifecycle
定义于:
lib/mongoid/association/proxy.rb

Overview

此类是所有关联代理对象的超类,并包含所有这些对象的共同行为。

直接已知子类

多个,一个

常量摘要折叠

KEEPER_METHODS =

防止未定义的特定方法

%i[
  发送
  object_id
  等于?
  respond_to?
  respond_to_missing?
  点击
  public_send
  extend_proxy
  extend_proxies
].冻结

实例属性摘要折叠

类方法摘要折叠

实例方法摘要折叠

包含在封送处理中的方法

#marshal_dump#marshal_load

构造函数详情

#initialize (base, target,association) {|_self| ... } ⇒代理

设置目标和关联元数据属性。

参数:

产量:

  • ( _self )

收益参数:



60
61
62
63
64
# File 'lib/mongoid/association/proxy.rb', line 60

def 初始化(基础, 目标, 关联)
  @_base, @_target, @_association = 基础, 目标, 关联
  产量(self) if block_given?
  extend_proxies(关联.扩展) if 关联.扩展
end

实例属性详细信息

# _association对象

返回属性 _association 的值。



41
42
43
# File 'lib/mongoid/association/proxy.rb', line 41

def _association
  @_association
end

# _base对象

关联基础的模型实例。

示例,如果一个帖子嵌入了 _many 评论,则 _base 是该帖子模型的一个特定实例。



39
40
41
# File 'lib/mongoid/association/proxy.rb', line 39

def _base
  @_base
end

# _target对象

针对关联目标的一对一关联的模型实例,或一对多关联的模型实例大量。

示例,如果一个帖子嵌入了许多评论,则 _target 是嵌入在特定帖子中的评论模型的大量。



48
49
50
# File 'lib/mongoid/association/proxy.rb', line 48

def _target
  @_target
end

类方法详细信息

apply_ordering (criteria,association)→ Criteria

如果在关联中定义了条件,则将排序应用于条件。

例子:

应用排序。

Proxy.apply_ordering(criteria, association)

参数:

返回:

  • ( Criteria )

    已排序的条件。



206
207
208
# File 'lib/mongoid/association/proxy.rb', line 206

def apply_ordering(条件, 关联)
  关联.来自一个购物车应用的order文档, ? 条件.order_by(关联.来自一个购物车应用的order文档,) : 条件
end

实例方法详细信息

#extend_proxies (*extension) ⇒对象

允许扩展为大量并扩展每个模块



67
68
69
# File 'lib/mongoid/association/proxy.rb', line 67

def extend_proxies(*扩展)
  扩展.展平. { |ext| extend_proxy(ext) }
end

# klass

从关联中获取类,如果不存在关联,则返回 nil。

例子:

获取课程。

proxy.klass

返回:

  • ( class )

    关联类。



77
78
79
# File 'lib/mongoid/association/proxy.rb', line 77

def klass
  _association&。klass
end

# reset_unloaded对象

重置关联代理内的条件。 由多对多关联使用,以使根本的id大量保持同步。

例子:

重置关联条件。

person.preferences.reset_relation_criteria


86
87
88
# File 'lib/mongoid/association/proxy.rb', line 86

def reset_unloaded
  _target.reset_unloaded(条件)
end

# 可替换对象

关联代理的默认可替换对象是目标的克隆。

例子:

获取替代项。

proxy.substitutable

返回:

  • ( Object )

    目标的克隆。



97
98
99
# File 'lib/mongoid/association/proxy.rb', line 97

def 可替换的
  _target
end