在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?
答案 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)