蒙古装相当于?

时间:2018-12-25 05:21:50

标签: ruby-on-rails mongoid

在Rails应用中,将ActiveRecord与mysql结合使用,您可以检查是否已加载关联:

soup = bs(html_page, 'lxml')
outF = open('C:/Users/ryans/OneDrive/Desktop/test.csv', 'w')
for link in soup.findAll('rect', attrs={'class': 'state failed'}):
    if link.isoweekday() in range(1, 6):
        outF.write(str(link))
        outF.write('\n')   
outF.close()

有类似的蒙古包吗? ._已加载?曾经工作,但现在不再工作。

更新-添加示例

class A
    belongs_to :b

a = A.find(...
a.b.loaded? # returns whether the associated object has been loaded

返回:

class A
    include Mongoid::Document
end

class B
    include Mongoid::Document
    belongs_to :a
end

a = A.new
b = B.new
b.a = a
b.a._loaded?

2 个答案:

答案 0 :(得分:1)

这是此类的一个枚举方法:Mongoid :: Relations :: Targets :: Enumerable

_loaded?

如果已枚举了枚举,它将返回true和false。如果条件已执行,或者我们手动加载了整个程序,则为true。

答案 1 :(得分:0)

也许目的不一样。 现在(Mongoid 7.0) _loaded?()是一个私有方法,对于我而言,它始终返回true。

我能找到的最好的是 ivar():如果已加载,则返回对象;如果未加载,则返回false。

我不确定这是否是可靠的解决方案。这取决于ivar()的进一步可用性以及对象作为实例变量存储的方式。

> b = B.find('xxx')
  => (db request for "b")
> b.ivar('a')
  => false
> b.a
  => (db request for "a")
> b.ivar('a')
  => (returns "a" object, as when b.a is called)